当前位置: 首页 > 知识库问答 >
问题:

在react router中检测以前的路径?

朱令
2023-03-14

我正在使用react路由器。我想检测我来自哪里的上一页(在同一应用程序中)。我的上下文中有路由器。但是,我在路由器对象上没有看到任何属性,如“先前路径”或历史记录。我该怎么做?

共有3个答案

苍德寿
2023-03-14

您可以在组件WillReceiveProps生命周期方法中保存以前的路径。该逻辑非常接近react-router文档的故障排除部分中提供的示例。

<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 })
    }
  }
})

最近,从州政府访问它。

宋正真
2023-03-14

不要检查上一页是什么,而是从不同的角度处理问题。将当前页面作为道具传递给您要导航到的组件或链接。

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

history.push(`/device/detail`, { from: 'device detail page' } );

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

公西季
2023-03-14

您可以使用

<Link to={{pathname: '/nextpath', state: { prevPath: location.pathname }}}>Example Link</Link>

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

 类似资料:
  • 问题内容: 我正在使用React Router。我想检测我来自何处的上一页(在同一应用程序内)。我在上下文中拥有路由器。但是,我在路由器对象上看不到“上一条路径”或历史记录之类的任何属性。我该怎么做? 问题答案: 您可以在生命周期方法中保存先前的路径。该逻辑非常接近文档的疑难解答部分中提供的示例。 最近,可以从州访问它。

  • 我的应用程序需要知道用户选择的基本音频路径的能力。在iOS上,这是微不足道的,因为你只需注册一个回调,你就知道音频的确切去向。 在Android上,我很高兴看到< code>MediaRouter类,然而令我沮丧的是,没有可预测的方法来确定路由类型。例如,当切换到蓝牙A2DP设备时,唯一的标识项是< code>RouteInfo.getName()方法,但这会返回A2DP设备的友好名称,因此无法进

  • 我正在查找在我的中检测路由更改。 此后,我将检查全局用户令牌,看看他是否已登录。然后我可以重定向用户,如果他没有登录。

  • 我想知道是否可以通过spotify web api从用户当前的活动设备中检测出用户正在听的歌曲。 谢谢。

  • 本文向大家介绍IOS检测指定路径的文件是否存在,包括了IOS检测指定路径的文件是否存在的使用技巧和注意事项,需要的朋友参考一下 检查文件是否存在 方法二: 方法三: 方法四:

  • 想实现先请求接口然后再生成路由改如何做到?(下面代码试了几次都不行)