我有一个state
组件,如下所示:
constructor(props){
super(props)
this.state={
editableComparatorIndexes: []
}
}
我无法更新state
,我需要做类似的事情:
onEditComparatorClicked(i) {
this.setState({editableComparatorIndexes[i]:1});
this.setState(this.state);
}
答案 0 :(得分:6)
首先创建state array
的副本,然后更新该值,然后使用setState
更新状态值。
onEditComparatorClicked(i) {
let editableComparatorIndexes = [...this.state.editableComparatorIndexes];
editableComparatorIndexes[i] = 1;
this.setState({editableComparatorIndexes});
}
或者你可以使用Array.prototype.slice(),它也会返回一个新的array
,如下所示:
onEditComparatorClicked(i) {
let editableComparatorIndexes = this.state.editableComparatorIndexes.slice();
editableComparatorIndexes[i] = 1;
this.setState({editableComparatorIndexes});
}