每当我更改路线时,我都会通过位置状态发送消息。 我想在componentWillUnmont()。
时删除该消息`this.context.router.push({
pathname: '/EmpReferralListView',
state: {
message: (typeof message != 'undefined') ? message : ''
}
});`
答案 0 :(得分:3)
对于那些像我一样陷入类似问题的人......这是针对路由器反应路由器v4。
相反,你可以做的是挂钩componentWillMount()
方法。
在组件的构造函数中定义message
:
constructor(props) {
super(props);
this.message = '';
}
然后您的componentWillMount()
将如下所示:
componentWillMount() {
if (this.props.location.state && this.props.location.state.message) {
this.message = this.props.location.state.message;
this.props.history.replace({
pathname: this.props.location.pathname,
state: {}
});
}
}
上述代码将在您抓取消息后替换位置的状态。因此,您需要使用this.message
来显示该消息。
现在,您可以在渲染过程中引用您的消息,如下所示:
render() {
return (
<div>{this.message}</div>
);
}
当地点发生变化时,您的信息应该清除。
我建议专门为此任务创建一个组件,然后您可以将其包含在您期望该消息的任何组件中。