以编程方式反应路由器 v4 导航

Posted

技术标签:

【中文标题】以编程方式反应路由器 v4 导航【英文标题】:React Router v4 navigation programmatically 【发布时间】:2017-09-27 11:41:13 【问题描述】:

当我使用 Redirect、Link 或 NavLink 的反应路由器时,一切都很好。但我需要一个以编程方式将我导航到路线的函数。

这就是我想要的:

if(a == 1)
    this.context.history.push("/")

else 
    this.context.history.push("/home");

如您所见,react router v4 中不再存在上下文历史记录。我无法在 js 代码中编写 withroute 进行导航。谁能告诉我如何直接在 js 代码中导航?

谢谢

【问题讨论】:

你尝试过使用 React Router 的 browserHistory 吗? 我正在使用 react-router-dom 我的意思是 v4。我无法提供任何解决方案 这能回答你的问题吗? Programmatically navigate using React router 【参考方案1】:

路由器会为你的 props 添加一个history,你可以这样使用它:

this.props.history.push('/mypath')

查看更多信息:Navigating Programatically in React-Router v4

【讨论】:

这只会改变 URL,不会真正导航

以上是关于以编程方式反应路由器 v4 导航的主要内容,如果未能解决你的问题,请参考以下文章

使用 React 路由器以编程方式导航

使用 React 路由器以编程方式导航

以编程方式重定向到反应路由器 v6 中的路由的问题

以编程方式重定向到反应路由器 v6 中的路由的问题

以编程方式反应导航更改选项卡顺序

在 goBack() 反应路由器 v4 之前检查历史以前的位置