2017-07-24 59 views
1

我有问题,路由器新的路由器的反应,登录后,我在终极版从0变为1型状态,然后我让开关在我的应用程序文件,但我得到了错误反应。登录后

Warning: [react-router] You cannot change <Router routes>; it will be ignored 

这是我的index.js,我想改变这一切路线链接,如果用户是登录(表格登录工作好,他们改变Redux的状态类型:1):

@connect((store)=>{ 
    console.log(store) 
    return { 
     typeUser: store.app.type 
    } 

}) 
class App extends React.Component{ 

    render(){ 
     switch(this.props.typeUser){ 
      case 0:{ 
     return(
     <Router history={browserHistory}> 
      <Route path={"/"} component={MainPage}></Route> 
      <Route path={"/login"} component={Login}></Route> 
      <Route path={"product/:nameProduct/:id"} component={ProductDetails}></Route> 
     </Router> 
     ) 
     break; 
     } 
      case 1:{ 
       return(
       <Router history={browserHistory}> 
        <Route path={"/"} component={MainPageAfterLogin}></Route> 
        <Route path={"/login"} component={LoginAfterLogin}></Route> 
       </Router> 
       ) 
       break; 
      } 
    } 
    } 
} 

const app = document.getElementById('app'); 
ReactDOM.render(<Provider store={store}> 
    <App/> 
    </Provider>,app); 

回答

0

你不能改变的Router,但你可以改变Routes构造你有,所以你可以设置路线,如

class App extends React.Component{ 
 
    render(){ 
 
     
 
     return(
 
     <Router history={browserHistory}> 
 
      {this.props.typeUser === 0? <User1/>: <User2/>} 
 
      
 
     </Router> 
 
     ) 
 
     
 
    } 
 
} 
 

 
class User1 extends React.Component { 
 
    render() { 
 
    return (
 
     <div> 
 
       <Route path={"/"} component={MainPage}></Route> 
 
       <Route path={"/login"} component={Login}></Route> 
 
       <Route path={"product/:nameProduct/:id"} component={ProductDetails}></Route> 
 
     </div> 
 
    ) 
 
    } 
 
} 
 

 
class User2 extends React.Component { 
 
    render() { 
 
    return (
 
     <div> 
 
       <Route path={"/"} component={MainPage}></Route> 
 
       <Route path={"/login"} component={Login}></Route> 
 
       
 
     </div> 
 
    ) 
 
    } 
 
}

+0

检查更新的answere –