使用Redux制作React组件执行一次性操作?

时间:2018-03-15 21:17:21

标签: javascript reactjs api redux react-redux

在React组件中,我想触发一个Redux reducer的动作,该按钮按下按钮进行API调用。

成功执行此API调用后,我希望我的reducer然后调度到我的组件调用已成功执行。

我的组件将作为道具收到此调度(例如this.props.successfullyUpdated)并将呈现窗口警报。

例如在我的渲染功能中,

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

我面临的问题是,我希望每次执行API后都只显示一次此警报。因此,在调用警报后,我不想再次调用它,直到Redux发送另一个successfullyUpdated道具。

现在,一旦successfullyUpdated成为道具的一部分,警报就会不断呈现,即使它只是通过Redux调度一次。如何阻止这种情况发生,并且只按需呈现警报?

1 个答案:

答案 0 :(得分:2)

您似乎缺少将successfullyUpdated设置回false的功能。

我们进入if语句并successfullyUpdated评估为true后,您需要将其设置为false

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