删除当前位置的状态

时间:2017-07-17 08:19:49

标签: react-router

每当我更改路线时,我都会通过位置状态发送消息。 我想在componentWillUnmont()。

时删除该消息
`this.context.router.push({
            pathname: '/EmpReferralListView',
            state: {
                message: (typeof message != 'undefined') ? message : ''
            }
    });`

1 个答案:

答案 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>
    );
}

当地点发生变化时,您的信息应该清除。

我建议专门为此任务创建一个组件,然后您可以将其包含在您期望该消息的任何组件中。