Red*_*Red 2 arrays state native reactjs react-native
尝试在this.state中更新数组的一个元素时,我遇到了(expected,)错误,但是看不到哪里出错了。我是否需要创建一个临时的数组更新,然后将整个数组分配回状态
这基本上就是我所拥有的
this.state = { array: ['a', 'b', 'c'] };
onBack() {
this.setState({
array[2]: 'something'
});
}
Run Code Online (Sandbox Code Playgroud)
您不能像这样更新状态。
切勿直接更改this.state,因为之后调用setState()可能会替换您所做的更改。将this.state视为不可变的。
阅读React文档。
您可以执行以下操作:
let newArray = [...this.state.array];
newArray[2] = 'somethingElse';
this.setState({array: newArray});
Run Code Online (Sandbox Code Playgroud)
上面的示例使用了Spread Syntax。
有多种修改状态的方法,但是所有方法都应确保将数据视为不可变的。您可以在此处阅读有关处理状态的更多信息