React Router this.context.router.push不会重新安装组件

时间:2016-02-04 23:08:45

标签: javascript reactjs react-router

我们有一个点击处理程序,它使用react router 2.0 this.context.router.push()更新url。见下文:

selectRelatedJob(slug) {
  JobActionCreators.fetchJobPage(slug);
  JobsActionCreators.getRelatedJobs({'sl': slug});
  this.context.router.push({pathname: '/job', query: {sl: slug}});
}

我们的目标是基于“sl”查询字符串获取新数据,但我们的componentWillMount()方法没有被调用,因为我们正在将url更新为相同的路径---只是一个不同的查询字符串。而是调用更新生命周期方法。我们当前的方法是调用操作创建器直接在单击处理程序中获取数据。但是,这似乎是多余的和hacky,因为我们已经更新了url。理想情况下,组件将被卸载并重新安装。

以下是嵌套路线:

<Route component={App}>
  <Route path="/" component={HomePage}/>
    <Route path="job" component={JobPage}/>
    <Route path="job/" component={JobPage}/>
  </Route>
</Route>

使用不同的查询字符串导航到当前网址的最佳案例做法是什么?

1 个答案:

答案 0 :(得分:0)

传入另一个组件。

UITextfield