2016-04-26 37 views
1

我正在開發與ReactJS應用程序,但我有一個問題。ReactJS react-router

這是我的路由器

<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> 

的路線房屋 不存在。但是,當我在鏈接到這條路線點擊,他們必須重定向做「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); 
     } 
    } 

第一次發現我的鏈接點擊,他們做的完美重定向。 但是如果我再次點擊,他們不會撥打componentWillMount並且重定向不會執行。

有人可以幫助我嗎?

+0

嘗試調用this.setURlParameters()在componentDidUpdate代替componentWillMount – QoP

+0

謝謝!!這是完美的作品! 非常感謝! – LuizFumes

回答

0

嘗試調用this.setURlParameters()在componentDidUpdate代替componentWillMount