我使用二维数组作为状态。
如何更新?
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"});
编辑:为什么我会被投票?!
答案 0 :(得分:2)
状态保存为地图,因此您编辑的方式并不合理。我的建议是将之前的状态视为“不可变”(我的例子实际上并没有这样做)并替换值批发。
var changedBoards = this.state.boards
changedBoards[0][1] = "full";
this.setState({boards: changedBoards})
答案 1 :(得分:1)
预计不起作用 - 你正在以非常奇怪的方式改变数据(我不知道你想用这样的setState
语句做什么)。
假设您要更新二维数组我将使用React提供的update
插件;
import update from 'react-addons-update';
this.setState(update(this.state, {
board: { 0: { 1: { $set: 'full' } } }
}));