Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改处于React状态的数组?_Javascript_Arrays_Reactjs_State - Fatal编程技术网

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()
来创建克隆。