![](/img/trans.png)
[英]How can I change an object value in an array in react redux reducer state?
[英]How can I change an array in a state in React?
我正在使用二维数组作为状态。
我该如何更新?
getInitialState: function() {
var board = [];
for (var i = 0; i < i_max; i++) {
var innerArray = [];
for (var j = 0; j < j_max; j++) {
innerArray.push("empty");
}
board.push(innerArray);
}
return {board: board};
},
下面的行似乎不起作用:
this.setState({board[1][2]: "full"});
编辑:为什么我会被否决?
状态被保存为地图,因此您进行编辑的方式实际上没有任何意义。 我的建议是将先前的状态视为“不可变的”(我的示例实际上并未这样做),并替换批发价。
var changedBoards = this.state.boards
changedBoards[0][1] = "full";
this.setState({boards: changedBoards})
预期它不起作用-您正在以非常奇怪的方式对数据进行变异(我无法用这种setState
语句来做您想做的事情)。
假设您想更新二维数组,我将使用React提供的update
插件。
import update from 'react-addons-update';
this.setState(update(this.state, {
board: { 0: { 1: { $set: 'full' } } }
}));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.