javascript - 如何通过索引删除数组元素并更新反应本机功能组件中的道具?
问题描述
今天我尝试在我的 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 迭代中使用它,这会删除数组但不更新类组件中的映射迭代,这可以运行
但我不明白为什么在功能组件中不起作用¿任何想法?感谢您的回答
解决方案
可变性导致了这一点。
可变是一种可以更改的变量。在 JavaScript 中,只有对象和数组是可变的,而不是原始值。资源
您需要将其更改为:
await setBuques(await buques.filter((el, i) => (i === index)))
console.log(buques)
推荐阅读
- excel - 基于主键的行中的唯一值创建工作表
- coq - 我知道定义有限数类型的两种方法。有什么词可以区分这两者吗?
- javascript - 为什么第二个 if 语句的行为是这样的?
- vba - MS VBA 编辑器隐藏成员提示
- python - ValueError:值太多但需要所有变量
- python - 如何从图表中抓取数据?
- c++ - 使用 unique_ptr 使我的二叉树类可迭代
- r - 根据另一列中的值对 R 数据框中的列进行分组
- python - Visual Studio Code、Anaconda 虚拟环境、具体项目?
- docker - 如何从 Docker 运行 gst-device-monitory-1.0