现在,我这样做:
class Foo extends React.Component {
constructor() {
super();
this.state = {data: Array(1000).fill(Array(1000).fill(0))};
}
mutatingFunc = (row, col) {
this.setState((prevState) => {
let tempArr = JSON.parse(JSON.stringify(prevState.data));
//mutate it here
tempArr[row][col] = 1;
return {data: tempArr};
})
}
}
但是对于这个大小的二维数组,有一些明显的滞后,因为必须复制整个数组。这是最有效的方式吗?
答案 0 :(得分:0)
复制数组有一种更容易,更快捷的方法:
const newArray = [...oldArray];
所以只是:
const tempArr = [...prevState.data];
tempArr[row][col] = 1;
return {data: tempArr};
请注意,这只是一个浅表副本。如果您需要深层复制,可以选择许多阵列克隆函数示例。