似乎找不到关于此的高质量文档。 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/