arrays - 更新状态数组中的一个值 react 原生

标签 arrays reactjs react-native state native

尝试在 this.state 中更新数组的一个元素时出现(预期的)错误,但看不出哪里出错了。我是否需要创建一个临时数组更新,然后将整个数组分配回状态

这基本上是我所拥有的

this.state = { array: ['a', 'b', 'c'] };

onBack() {
  this.setState({
      array[2]: 'something' 
  });
}

最佳答案

你不能像这样更新状态。

Never mutate this.state directly, as calling setState() afterwards may replace the mutation you made. Treat this.state as if it were immutable.



阅读 React docs

你可以这样做:
let newArray = [...this.state.array];
newArray[2] = 'somethingElse';
this.setState({array: newArray});

上面的例子使用的是 Spread Syntax

有多种方法可以修改状态,但所有方法都应确保将数据视为不可变的。您可以阅读有关在 React here 中处理状态的更多信息

关于arrays - 更新状态数组中的一个值 react 原生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50603368/

相关文章:

python - 重新编码丢失的数据 Numpy

arrays - Swift 2.1 数组扩展objectsAtIndexes

java - 如何在java中返回一个可由其他对象访问的数组?

javascript - 将 dom 操作放在 redux reducer 中是个坏主意?

javascript - 在 render() 方法中无法访问 react 状态数组对象

javascript - 如何在reactJS中使用id从API获取数据?

react-native - 如何在 nativebase 中处理 Form 的 onSubmit 函数?

arrays - 读取具有不同行数的多个文件

react-native - react 导航动态 header 不起作用?

javascript - react-native-maps:UrlTile 和 Polyline - zIndex/Overlaying 不工作