1

我正在構建一個反應應用程序,其中兩個不同的用戶組登錄(通過Firebase)。Costomize React Routing with Switch Statement

每個用戶組需要獲得不同的路由。不同的團體應該分享網址,但內容不同。

要做到這一點,我已經添加了一個switch語句到路由js。

當我改變acctype手動代碼工作像預期,但我需要爲了改變acctype變量超出我的firebaseclass的路由合適的人到合適的路線......

的問題是,在任何setter方法可以設置acctype變量之前,反應呈現視圖。我已經用回調和.done以及asnyc來嘗試它了。

這routes.js出口與可變車轍成分直接進入index.js React.dom.render()

謝謝您的幫助!

import {Route, Router, IndexRedirect, browserHistory} from 'react- 
router'; 
var acctype = 0; 
var rut = ""; 
switch (acctype) { 
case 0: //Group0 
    rut = (
    <Router history={browserHistory}> 

     <Route path="/" component={Blank}> 
     <IndexRedirect to="/welcome"/> 
     <Route path="welcome" component={Welcome_View}></Route> 
     <Route path="login" component={Login_View}></Route> 
     <Route path="*" component={fofView}></Route> 
     </Route> 

    </Router> 
); 
    break; 

case 1: //Group1 
    rut = (
    <Router history={browserHistory}> 
     <Route path="/" component={Main}> 
     <IndexRedirect to="/uebersicht"/> 
     <Route path="uebersicht" component={Uebersicht_KtppView}></Route> 

     <Route path="wiki" component={Wiki_KtppView}></Route> 
     <Route path="netzwerk" component={Netzwerk_KtppView}></Route> 
     <Route path="meineEinrichtung" component={meineEinrichtung_KtppView}></Route> 
     <Route path="feedback" component={Feedback_KtppView}></Route> 

     </Route> 
    </Router> 
); 
    break; 
case 2: //Group 2 
    rut = (
    <Router history={browserHistory}> 
     <Route path="/" component={Main}> 
     <IndexRedirect to="/main"/> 
     <Route path="main" component={MainView}></Route> 
     <Route path="minor" component={MinorView}></Route> 
     </Route> 
    </Router> 
); 
    break; 
    } 
    export default(rut) 

回答