在React组件中,我想向Redux reducer触发一个 Action ,该 Action 在按下按钮时执行API调用。

成功执行此API调用后,我希望我的reducer可以将调用已成功执行的操作分派(dispatch)到我的组件。

我的组件将以 Prop 的形式接收此调度(例如this.props.successfullyUpdated)并将呈现窗口警报。

例如在我的渲染函数中

render() {
   if (this.props.successfullyUpdated) {
   return renderSuccessAlert();
   }
}

我面临的问题是,我希望在每次执行API后仅显示一次此警报。因此,在调用警报之后,我不希望再次调用它,直到Redux调度了另一个successfullyUpdated属性。

现在,一旦successfullyUpdated成为 Prop 的一部分,即使警报仅通过Redux分发一次,警报也会连续呈现。如何阻止这种情况发生,仅按需呈现警报?

最佳答案

似乎您缺少将successfullyUpdated设置回false的函数。

一旦我们进入if语句,并且successfullyUpdated评估为true,则需要将其设置为false

render() {
   if (this.props.successfullyUpdated) {
       this.props.setUpdatedFalse();
       return renderSuccessAlert();
   }
}

10-08 15:49