【发布时间】:2021-05-13 08:17:30
【问题描述】:
- 您好,我正在尝试更新我的嵌套二维板字段状态,但没有成功。
有没有更简单的方法来存储二维数组?
export default function Game() {
const [state, setState] = useState({
board: [
[null, "B", null, "B", null, "B", null, "B"],
["B", null, "B", null, "B", null, "B", null],
[null, "B", null, "B", null, "B", null, "B"],
["X", null, "X", null, "X", null, "X", null],
[null, "X", null, "X", null, "X", null, "X"],
["G", null, "G", null, "G", null, "G", null],
[null, "G", null, "G", null, "G", null, "G"],
["G", null, "G", null, "G", null, "G", null],
],
greyTurn: true,
chess: null,
dest: null,
});
const update = () => {
setState(prevState => ({...prevState, board[0,0]: 'G'}))
}
return (
<>
<button onClick={update}></button>
<>
)
- 把更新功能改成这个
常量更新 = () => { const newState = [...state.board]; 新状态[0][0] = 'G'; }
实际上是做更新状态,但我不明白为什么,我不是刚刚创建了深层 state.board 副本吗?为什么操纵这个深拷贝实际上会改变我的 state.board?
【问题讨论】:
标签: reactjs react-hooks state use-state