我只想更改多维数组的一个元素
// nodes is a 2-dimensional array
// of 30 rows and 30 columns
this.state = {nodes};
// updatedNodes is a deep copy of nodes
updatedNodes[row][col].isVisited = true;
setState({nodes : updatedNodes });
当我通过更改 row 和 col 的值多次运行上述代码时,它开始滞后。我想,这是因为所有元素每次都会更新。我只想更新我正在更改的元素,而不是所有元素。我该怎么做?
此外,当我在循环语句中运行上述代码时,它会滞后并且多个元素的更改会一起反映。
不更新整个状态,只更新更改的值。
this.setState(prevState => ({
...prevState,
nodes: {
...prevState.nodes,
[row]: {
...prevState[row],
[col]: {
...prevState[row][col],
isVisited: true
}
}
}
}))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)