reactjs - react router v4 以编程方式改变路线

标签 reactjs browser-history react-router-v4

似乎找不到关于此的高质量文档。 React Router v4 文档包含“历史”对象的信息,但声明它是可变的,不应更改。我见过的许多例子看起来都像是“骇客”。任何见解将不胜感激。

最佳答案

作为一个 React 新手,我自己也不得不努力解决这个问题。虽然@ToddChaffee 提供的链接给了你很好的洞察力,this thread 强调当你有 <Router/> 时,历史对象会自 Action 为 Prop 传递。作为顶级组件。这比单独加载历史对象并使用 createBrowserHistory() 简单得多。方法。

以下对我有用:

<Route exact path='/' render={({history}) => 
  <Home infoHandler={this.handleUserInfo} 
    imageHandler={this.handleImage} 
    history={history}/>
}/>

然后在组件内部你可以:

this.props.history.push('/routeYouWantToGoTo');

不要忘记在导出模块之前对组件中的 prop 进行类型检查:

Home.propTypes = {
  history: React.PropTypes.object
}

export default Home;

关于reactjs - react router v4 以编程方式改变路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43282866/

相关文章:

javascript - 基于另一个 Antd Tree 的检查节点创建 Antd Tree

javascript - 用于显示导航的 React.js 滚动阈值

javascript - 为什么javascript :history. go(-1);不能在移动设备上工作?

javascript - React Hooks 与 React Router v4 - 我如何重定向到另一条路线?

javascript - 如何在不重新渲染页面的情况下更新路线(打开/关闭具有自己路线的模态)?

javascript - 将 Isotope.js 与 React 结合使用来创建带过滤器的砌体布局?

node.js - 如何使用 React 保存和加载 Markdown?

html - 在后退按钮上保留动态更改的 HTML

javascript - pushState() 不适用于 beforeunload,popState() 不适用于加载,History API

reactjs - react 路由器 v4.2.2 : using a string instead of function inside component prop of Route results in error