我有显示表单的组件AddCarWash
,当提交此表单时,我将browserHistory.push(url)
重定向到另一个组件AllCarWash
。此外,在重定向之前,我放入redux存储message : 'CarWash was save successfully'
。此消息将显示在目标组件AllCarWash
中。
显然,这个消息应该只显示一次,在任何进一步的用户操作中都不应该显示它。所以我必须删除数据从redux存储当我被显示。我该怎么做呢?把resetMessageHandler
放在每一个Link
在页面上还是有更简单的方法?
另一种选择是使用componentWillUnmount()来保持一个已分派的动作,该动作将在组件从。
componentWillUnmount() {
// destroy errors for the form here
this.props.destroyErrorMessage();
}
这是你可以做的,当你在redux上接收到componentWillReceiveProps或ComponenetWillMount的消息时,你可以在方法中设置一个Timeout为20-30秒,并在Timeout函数中更新状态
//sample code
componentWillReceieveProps(props){
if(props.message){
setTimeout(()=>{
this.props.dispatch(removeMessageAction())
},5000);
}
}
同样可以写入componentWillMount函数,或者也可以使用componentDidUpdate和componentDidMount方法