ReactJS 反应路由器

ReactJS react-router

我正在使用 ReactJS 开发应用程序,但我遇到了问题。

那是我的路由器

<Router history={browserHistory}>
    <Route name="Home" path="/" component={App}>
        <IndexRoute component={Home}></IndexRoute>
        <Route name="Stores" path='stores' component={Stores}>
        <Route name="List" path='/stores/list' component={StoreList}></Route>
        <Route name="Create" path='/stores/create' component={StoreCreate}>   </Route>
    </Route>
    <Route name="404: No Match for route" path="*" component={NoMatch} />
    </Route>
</Router>

去商店的路线 不存在。但是,当我点击 link 到这条路线时,他们必须重定向做 "StoreList"

<Route name="Stores" path='stores' component={Stores}>

所以我做到了:

    class Stores extends React.Component {

      componentWillMount() {
        this.setUrlParameters();
      }

      setUrlParameters() {
        if (!this.props.children) {
          this.context.router.push({
              pathname: '/stores/list',
              query: {
                  page: 1,
                  limit: 10
              }
          });
        }
      }

      render() {
        return (this.props.children);
      }
    }

我第一次点击 link,他们完善了重定向。 但是如果我再次点击,他们不会调用 componentWillMount 并且重定向不会执行。

有人可以帮助我吗?

尝试在 componentDidUpdate 中调用 this.setURlParameters() 而不是 componentWillMount