在React状态对象中更改布尔属性

时间:2018-11-24 23:57:42

标签: javascript reactjs react-native

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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