我有itemList作为我的状态对象数组。
this.state = {
.....
itemList: [],
.....
}
itemList有title, desc, expState
。下面的代码非常完美。我想知道是否有更好的方法,比如使用ES6的箭头。我是ReactJS和ES6的新手,所以无法弄清楚。
var index = this.state.itemList.indexOf(item);
item.expState = !(item.expState);
var newItemList = itemList;
newItemList[index] = item;
this.setState({itemList: newItemList});
答案 0 :(得分:2)
item.expState = !item.expState;
this.setState({ itemList: this.state.itemList });
上面的代码是你所拥有的简化版本(它仍然是ES5.1,因为没有地方可以使用新标准中的任何内容)。
部分
var newItemList = itemList;
newItemList[index] = item;
被完全删除,因为在JS数组中没有克隆赋值,但只有对它们的引用被赋值给变量。因此,无论如何,你正在使用相同的数组。