2017-07-24 4 views
1

Ich habe Problem mit Router in Reaktion, nach dem Login i-Typ Zustand in Redux Wechsel von 0 auf 1, dann ist i-Schalter in meiner App-Datei zu machen, aber ich habe FehlerReagieren. Neue Router nach dem Login

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

Das ist mein index.js, möchte ich alle Routen Links ändern, wenn die Benutzeranmeldung ist (Form mit Login Arbeit gut und sie redux Zustand Typ 1 aus):

@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); 

Antwort

0

Sie nicht die Router ändern können, aber Sie können die Routes Konfigurationsänderung, Sie haben, so können Sie die Routen wie

einrichten

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

Überprüfung der aktualisierte answere –