【发布时间】:2017-09-16 11:29:24
【问题描述】:
lifeParser 是一个用于处理和更新 boardData 的方法。问题是 boardData 在循环仍在处理时得到更新。
lifeParser(){
var parseArray = this.state.boardData.slice(0);
for(var i=0;i<30;i++){
for(var j=0;j<30;j++){
parseArray[i][j] = 5; // boardData gets updated here before setState is even called
}
}
this.setState({boardData : parseArray});
}
【问题讨论】:
-
因为“第二层”即
[j]与this.state.boardData[n][j]是相同的数据 - 即您已经切片了数组的“第一层”,但每个parseArray[n]中的数组是引用与this.state.boardData[n]中相同的数据
标签: javascript arrays reactjs