2 回答

TA貢獻1895條經驗 獲得超7個贊
可變性導致了這一點。
可變是一種可以更改的變量。在 JavaScript 中,只有對象和數組是可變的,原始值不是。
您需要將其更改為:
await?setBuques(await?buques.filter((el,?i)?=>?(i?===?index))) console.log(buques)

TA貢獻2065條經驗 獲得超14個贊
今天我嘗試刪除我的 react-native 組件中的一個數組但不起作用,這是 mi 代碼:
let arr = buques
await arr.splice(index, 1)
await setBuques(arr)
console.log(buques)
alert('Buque eliminado')
展開片段
這可以在類組件中運行并更新道具:
removearray = (index)=>{
let arr = this.state.tags
arr.splice(index, 1)
this.setState({tags: arr})
}
展開片段
我在函數組件中的 .map 迭代上使用它,這會刪除數組,但不會更新類組件中的地圖迭代,它可以運行
但我不明白為什么在功能組件中不起作用?有什么想法嗎?謝謝你的回答await 僅在 async 中有效,就像您可以做的那樣
const removeItem = async () => {
let arr = buques
await arr.splice(index, 1)
await setBuques(arr)
console.log(buques)
alert('Buque eliminado');
}
要更新視圖中的數組,您需要更改數組數據的引用,例如
removearray = (index)=>{
let arr = [...this.state.tags]; <-- This is trick -->
arr.splice(index, 1)
this.setState({tags: arr})
}
添加回答
舉報