【发布时间】:2014-12-17 18:17:14
【问题描述】:
我有一个状态数组,比如说 this.state.arr。 我想在这个 state 属性中添加一些东西,然后再更改一些属性。
选项 1
onChange(event){
this.state.arr.push('newvalue');
...
this.setState({some:'val',arr:this.state.arr})
}
选项 2
onChange(event){
var newArr = this.state.arr;
...
newArr.push('newvalue');
...
this.setState({some:'val',arr:newArr})
}
所以.. 我知道 this.state 应该被视为不可变的。但是可以像在选项 1 中那样使用它,我仍然从中设置状态,还是我需要使用类似于选项 2 的东西,因此总是首先在内存中制作副本
【问题讨论】:
-
第三种选择可能是最好的:使用 React 提供的不变性助手:facebook.github.io/react/docs/update.html