首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在反应路由器中检测先前的路径?

在反应路由器中检测先前的路径?
EN

Stack Overflow用户
提问于 2016-09-02 09:25:19
回答 14查看 215.7K关注 0票数 102

我用的是反应路由器。我想从我来自的地方检测上一个页面(在同一个应用程序中)。我的上下文中有路由器。但是,我看不到路由器对象上的任何属性,比如“前一条路径”或历史记录。我该怎么做呢?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2016-09-02 10:11:28

可以在componentWillReceiveProps生命周期方法中保存以前的路径。逻辑非常接近故障排除部分 of react-router docs中提供的示例。

代码语言:javascript
复制
<Route component={App}>
  {/* ... other routes */}
</Route>

const App = React.createClass({
  getInitialState() {
    return { prevPath: '' }
  },

  componentWillReceiveProps(nextProps) {
    if (nextProps.location !== this.props.location) {
      this.setState({ prevPath: this.props.location })
    }
  }
})

最近,从州访问它。

票数 35
EN

Stack Overflow用户

发布于 2018-05-01 02:22:12

您可以使用<Link>组件传递状态,在本例中为路径名:

代码语言:javascript
复制
<Link to={{pathname: '/nextpath', state: { prevPath: location.pathname }}}>Example Link</Link>

然后,您可以在下一个组件中从prevPath访问this.props.location.state

票数 89
EN

Stack Overflow用户

发布于 2020-08-06 04:01:42

与其检查前一页是什么,不如从另一个角度来处理问题。将当前页面作为支持传递到要导航到的组件或链接。

在我调用history.push或单击链接的上一页或组件中,我添加了当前页面的状态。

代码语言:javascript
复制
history.push(`/device/detail`, { from: 'device detail page' } );

然后,我可以使用history.location.state.from访问上一页的内容。

票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39288915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档