React-redux在显示一次后删除存储中的数据

时间:2016-10-16 11:00:27

标签: reactjs redux react-redux

我有显示表单的组件AddCarWash,当提交此表单时,我将重定向browserHistory.push(url)发送到另一个组件AllCarWash。另外,在重定向之前,我放入了redux store message : 'CarWash was save successfully'。此消息将显示在目标组件AllCarWash中。

很明显,此消息只应显示一次,并且在任何进一步的用户操作中都不应显示该消息。因此,当我出现时,我必须从redux商店中删除数据。我怎样才能做到这一点?将resetMessageHandler放在页面中的每个Link中,还是有很简单的方法?

2 个答案:

答案 0 :(得分:0)

这里是你可以做的,当你在componentWillReceiveProps或ComponenetWillMount上的redux中收到消息时,你可以在方法中设置超时20-30秒,在超时函数中更新状态

//sample code
componentWillReceieveProps(props){
 if(props.message){
  setTimeout(()=>{ 
   this.props.dispatch(removeMessageAction())
  },5000);
 }
}

同样可以写入componentWillMount函数,或者也可以使用componentDidUpdate和componentDidMount方法

答案 1 :(得分:0)

另一种替代方法是使用componentWillUnmount()来执行调度的动作,该动作将在组件离开导航位置时触发。

componentWillUnmount() {
        // destroy errors for the form here
        this.props.destroyErrorMessage();
    }