Javascript 如何更改处于React状态的数组?
我使用二维数组作为状态 我如何更新它Javascript 如何更改处于React状态的数组?,javascript,arrays,reactjs,state,Javascript,Arrays,Reactjs,State,我使用二维数组作为状态 我如何更新它 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
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};
},
编辑:为什么我会被否决 预计它不会工作-您正在以非常奇怪的方式对数据进行变异(我不明白您想用这样的
setState
语句做什么)
假设您想要更新二维数组,我将使用React提供的update
插件
import update from 'react-addons-update';
this.setState(update(this.state, {
board: { 0: { 1: { $set: 'full' } } }
}));
预计它不会工作-您正在以一种非常奇怪的方式对数据进行变异(我不明白您想用这种
setState
语句做什么)
假设您想要更新二维数组,我将使用React提供的update
插件
import update from 'react-addons-update';
this.setState(update(this.state, {
board: { 0: { 1: { $set: 'full' } } }
}));
州作为地图保存,因此您编辑的方式没有真正意义。我的建议是将前一个状态视为“不可变”(我的示例实际上并没有这样做)并替换该值
var changedBoards = this.state.boards
changedBoards[0][1] = "full";
this.setState({boards: changedBoards})
州作为地图保存,因此您编辑的方式没有真正意义。我的建议是将前一个状态视为“不可变”(我的示例实际上并没有这样做)并替换该值
var changedBoards = this.state.boards
changedBoards[0][1] = "full";
this.setState({boards: changedBoards})
我读过关于变异的内容,但我没有直接更改
这个.state.board
。我读过关于变异的内容,但我没有直接更改这个.state.board
。您得到的错误是什么?未知:“[”位置的意外标记您得到的错误是什么?未知:“[”位置的意外标记
,现在我得到了,谢谢。我想我必须使用.slice()
来创建克隆。现在我得到了,谢谢。我想我必须使用.slice()
来创建克隆。