Reactjs React.js:道具更新后如何检查?

Reactjs React.js:道具更新后如何检查?,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我有4个表单字段,用户可以在其中选择或输入值,以进入下一步。以下是其中一个字段: <Form.Field control={Checkbox} checked={this.props.donationCheckbox10} label='$10' value={10} onChange={() => { this.props.dispatchUpdateStateData('', 'donationInputField'); this.props.

我有4个表单字段,用户可以在其中选择或输入值,以进入下一步。以下是其中一个字段:

<Form.Field
  control={Checkbox}
  checked={this.props.donationCheckbox10}
  label='$10'
  value={10}
  onChange={() => {
    this.props.dispatchUpdateStateData('', 'donationInputField');
    this.props.dispatchUpdateStateData(!this.props.donationCheckbox10, 'donationCheckbox10');
    this.clearTheOtherCheckboxes(10);
    console.log(store.getState());
    this.checkIfReadyToAdvance();
  }}
/>

没有什么理由存储派生信息,除非该信息的计算是高性能的

isReadyToAdvance() {
   const { props } = this;

   return
      props.donationCheckbox10 ||
      props.donationCheckbox25 ||
      props.donationCheckbox50 ||
      props.donationInputField;
}
然后使用
!this.isReadyToAdvance()
而不是
this.state.canNotAdvance


从技术上讲,您也可以使用
组件willupdate
(已弃用)来更新您的
状态或新状态。

如果
checkIfReadyToAdvance
计算派生状态,请不要在此处计算。你可以在每次重播时计算,你可以计算道具何时被更改,或者你可以在你的商店中计算。谢谢,你可以发布其中一个例子吗?如果你向我们展示一下
checkIfReadyToAdvance
的实际功能,这会有所帮助。我会将该功能发布到原始帖子中。我是通过componentDidUpdate()实现的,我认为这是这里最好的选择。我很好奇如何在道具更改或商店中实现它,如果你能显示其中的任何一个。嗯,它是派生状态,我想知道你为什么要将它保存到状态?为什么不使用一个返回布尔值并调用它而不是访问状态的函数呢?
isReadyToAdvance() {
   const { props } = this;

   return
      props.donationCheckbox10 ||
      props.donationCheckbox25 ||
      props.donationCheckbox50 ||
      props.donationInputField;
}