第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么我的拼接刪除了除第一個(gè)以外的所有拼接而不是僅刪除指定的拼接?

為什么我的拼接刪除了除第一個(gè)以外的所有拼接而不是僅刪除指定的拼接?

BIG陽 2023-05-11 10:18:20
對(duì)于給定的數(shù)組,當(dāng)我運(yùn)行拼接時(shí),除了第一個(gè)條目之外的所有內(nèi)容都被刪除。但是我希望只刪除選定的條目。我懷疑這與我的 i 設(shè)置方式有關(guān),但我不確定問題出在哪里。removethisone = (i) => {this.setState(state=>({list: state.list.splice(i,1)}))}    <ul>    {this.state.list.map((entry, i)=><li key={i}><button onClick={this.removethisone}>{i+1}</button>{entry}</li>)}    </ul>
查看完整描述

2 回答

?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊

發(fā)生這種情況的原因是因?yàn)樵揂rray.splice方法返回?cái)?shù)組中刪除的項(xiàng)目。


你需要做這樣的事情:


removethisone = (i) => {

  this.setState(state => {

    const nextState = [ ...state.list ]

    nextState.splice(i, 1)


    return { list: nextList }

  })

}

例如,運(yùn)行下面的代碼以查看輸出:


// This is what your code does

let numbers = [1, 2, 3, 4, 5];

let removedNumbers = numbers.splice(2, 1)

numbers = removedNumbers


console.log(numbers);

console.log(removedNumbers);


查看完整回答
反對(duì) 回復(fù) 2023-05-11
?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊

您的代碼完全按照您的描述工作,因?yàn)檫@就是splice 的工作方式。

splice 方法返回被刪除的項(xiàng)目的數(shù)組。您正在將移除的項(xiàng)目存儲(chǔ)回狀態(tài)。因此,為什么你得到你刪除的東西。

removethisone = (i) => {

? this.setState(state => {

? ? const list = state.list;

? ? const removedElems = list.splice(i, 1);

? ? console.log(removedElems);

? ? return {

? ? ? list

? ? }

? })

}


查看完整回答
反對(duì) 回復(fù) 2023-05-11
  • 2 回答
  • 0 關(guān)注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)