首页 > 解决方案 > 如何通过索引删除数组元素并更新反应本机功能组件中的道具?

问题描述

今天我尝试在我的 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 迭代中使用它,这会删除数组但不更新类组件中的映射迭代,这可以运行

但我不明白为什么在功能组件中不起作用¿任何想法?感谢您的回答

标签: javascriptreact-nativeexpo

解决方案


变性导致了这一点。

可变是一种可以更改的变量。在 JavaScript 中,只有对象和数组是可变的,而不是原始值。资源

您需要将其更改为:

await setBuques(await buques.filter((el, i) => (i === index)))
console.log(buques)

推荐阅读