我有显示表单的组件AddCarWash
,当提交此表单时,我将重定向browserHistory.push(url)
发送到另一个组件AllCarWash
。另外,在重定向之前,我放入了redux store message : 'CarWash was save successfully'
。此消息将显示在目标组件AllCarWash
中。
很明显,此消息只应显示一次,并且在任何进一步的用户操作中都不应显示该消息。因此,当我出现时,我必须从redux商店中删除数据。我怎样才能做到这一点?将resetMessageHandler
放在页面中的每个Link
中,还是有很简单的方法?
答案 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();
}