Reactjs 检查组件上的新路由是否将卸载?

Reactjs 检查组件上的新路由是否将卸载?,reactjs,react-router,Reactjs,React Router,我有一些代码将在组件willunmount()上运行,但我只希望在它们返回上一页时运行。如果他们转到下一页,我不希望组件中的内容将卸载 我正在使用React Router 4,但是当我在组件willunmount中检查它时,它仍然没有更新到下一个url componentWillUnmount() { const props = this.props; const location = props.location; } React Router提供了一个对象,您可以

我有一些代码将在
组件willunmount()
上运行,但我只希望在它们返回上一页时运行。如果他们转到下一页,我不希望
组件中的内容将卸载

我正在使用React Router 4,但是当我在
组件willunmount
中检查它时,它仍然没有更新到下一个url

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

  }
React Router提供了一个对象,您可以使用它在转换到新位置之前设置一些变量

试着这样做:

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

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

您可能还需要检查
位置。

当您说“后退”时,您的意思是他们是否点击了浏览器的“后退”按钮,或者您是否有一个按钮/链接明确地向后移动,例如在菜单/面包屑或其他东西中?与您说“如果他们前进到下一页”时下一页的@TomFinney问题相同。这是通过浏览器导航栏中的“下一页”按钮还是通过HTML元素实现的?@TomFinney-我两者都有。前进只是网站上的一个按钮。啊,所以我基本上要做我自己的检查?