我有一个状态数组,比方说this.state.arr
。
我想向这个状态属性添加一些内容,然后更改更多属性。
Option 1
onChange(event){
this.state.arr.push('newvalue');
...
this.setState({some:'val',arr:this.state.arr})
}
Option 2
onChange(event){
var newArr = this.state.arr;
...
newArr.push('newvalue');
...
this.setState({some:'val',arr:newArr})
}
所以...我知道this.state
应该被视为不可变的,但是可以像选项 1 一样使用它吗?我仍然从中设置状态,或者我是否需要使用像选项 2 这样的东西,因此总是首先在内存中制作副本?
目前来说,这是最好的办法。
this.setState(previousState => ({
myArray: [...previousState.myArray, 'new value']
}));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)