2 回答
TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
可變性導(dǎo)致了這一點(diǎn)。
可變是一種可以更改的變量。在 JavaScript 中,只有對(duì)象和數(shù)組是可變的,原始值不是。
您需要將其更改為:
await?setBuques(await?buques.filter((el,?i)?=>?(i?===?index))) console.log(buques)
TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
今天我嘗試刪除我的 react-native 組件中的一個(gè)數(shù)組但不起作用,這是 mi 代碼:
let arr = buques
await arr.splice(index, 1)
await setBuques(arr)
console.log(buques)
alert('Buque eliminado')
展開片段
這可以在類組件中運(yùn)行并更新道具:
removearray = (index)=>{
let arr = this.state.tags
arr.splice(index, 1)
this.setState({tags: arr})
}
展開片段
我在函數(shù)組件中的 .map 迭代上使用它,這會(huì)刪除數(shù)組,但不會(huì)更新類組件中的地圖迭代,它可以運(yùn)行
但我不明白為什么在功能組件中不起作用?有什么想法嗎?謝謝你的回答await 僅在 async 中有效,就像您可以做的那樣
const removeItem = async () => {
let arr = buques
await arr.splice(index, 1)
await setBuques(arr)
console.log(buques)
alert('Buque eliminado');
}
要更新視圖中的數(shù)組,您需要更改數(shù)組數(shù)據(jù)的引用,例如
removearray = (index)=>{
let arr = [...this.state.tags]; <-- This is trick -->
arr.splice(index, 1)
this.setState({tags: arr})
}
添加回答
舉報(bào)
