2016-08-15 41 views
0

我在使用react-router時遇到了問題。我想建立一個帶有firebase的登錄系統並作出反應。React路由器2.6.0如何重定向點擊功能

當用戶點擊「登錄」按鈕,用戶名和密碼通過認證後,頁面將重定向到主頁。

我的路線是這樣的:

ReactDOM.render(
 
    <Router history={hashHistory}> 
 
    <Route path='/'> 
 
     <IndexRoute component={Index}></IndexRoute> 
 
     <Route path='/start' component={Layout}></Route> 
 
    </Route> 
 
    </Router>, 
 
app);

Index組件是登錄頁面。

這裏是我的點擊功能:

Jump(){ 
 
    var password = this.refs.password.value; 
 
    var email = this.refs.username.value; 
 
    console.log(email, password); 
 
    
 
    firebase.auth().signInWithEmailAndPassword(email, password) 
 
    .catch(function(error) { 
 
     // Handle Errors here. 
 
     var errorCode = error.code; 
 
     var errorMessage = error.message; 
 
     // ... 
 
    }) 
 
    .then(function(res){ 
 
     if(res !== undefined){ 
 
     browserHistory.push('/#/start'); 
 
     //want to do the redirect here. 
 
     } 
 
    }) 
 

 
    }

我試圖browserHistory.push(),但它不工作。任何人都知道如何重定向到函數內部?真的很感謝!

回答

1

由於您在路由配置中使用hashHistory,因此您可以簡單地使用這種方式編寫它。

hashHistory.push('/start') 

此外,路由配置中的路徑不需要額外的斜線。

變化

<Route path='/start' component={Layout}></Route> 

<Route path='start' component={Layout}></Route> 
相關問題