检查componentWillUnmount上的新路线?

时间:2019-03-15 16:44:30

标签: reactjs react-router

我有一些可以在componentWillUnmount()上运行的代码,但是我只希望它们返回上一页时才能运行。如果他们前进到下一页,我不希望运行componentWillUnmount中的内容。

我正在使用React Router 4,但是当我在componentWillUnmount中对其进行检查时,它仍然没有更新为下一个URL。

  componentWillUnmount() {
    const props = this.props;
    const location = props.location;

  }

1 个答案:

答案 0 :(得分:0)

React Router提供了一个history对象,您可以使用该对象在过渡到新位置之前设置一些变量。

尝试这样的事情:

componentDidMount() {
    this.props.history.block((location, action) => {
        this.isGoingBack = action === 'POP';
    })
}

componentWillUnmount() {
    if (this.isGoingBack) {
        ...
    }
}

您可能还需要检查location