我正在尝试更新状态对象内的布尔属性,但遇到了一些麻烦。
这是我正在尝试做的事情:

this.setState(
  prevState => ({
    selectedGrocery: {
      ...prevState.selectedGrocery,
      checked: !prevState.checked
    }
  }),
  () => {
    console.log(this.state.selectedGrocery);
  }
);


状态selectedGrocery.checked初始化为false,当我调用上述代码时,它更改为true,但是下次调用该代码时,它不会变回false。提前致谢!

最佳答案

您需要使用prevState.selectedGrocery.checked才能使用正确的属性。

this.setState(
  prevState => ({
    selectedGrocery: {
      ...prevState.selectedGrocery,
      checked: !prevState.selectedGrocery.checked
    }
  }),
  () => {
    console.log(this.state.selectedGrocery);
  }
);

09-25 19:22