现在,我这样做:
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};
})
}
}
但是对于这种大小的二维数组,由于必须复制整个数组,因此存在一些明显的滞后。这是最有效的方法吗?
最佳答案
复制数组有一种更简便快捷的方法:
const newArray = [...oldArray];
所以就:
const tempArr = [...prevState.data];
tempArr[row][col] = 1;
return {data: tempArr};
请注意,这只是一个浅表副本。如果您想要深层复制,则有许多数组克隆功能的示例可供选择。