2017-05-04 6 views
1

reactJsでログインした後、次のページにリダイレクトするにはどうすればよいですか?私はそれのためにAxiosを使用しています。私はサーバー側でセッションを開始し、クライアント側では応答を得ています。私は私の仕事のページを制限したい。ログインした後でなければ、セッションのあるtodoページにリダイレクトする必要があります。ReactJs次のページにリダイレクトする方法(セッションあり)

このセッション応答でどのようにリダイレクトするのですか?あなたのapp.jsxで

login.jsx

axios.post('/login', { 
    email:this.state.strEmail, 
    password:this.state.strPassword 
}) 
.then(function (response) { 
    console.log(response);//this session respons 
    //location.href='/todoapp'; 
}) 
.catch(function (error) { 
    console.log(error); 
}); 

app.jsx

ReactDOM.render(

     <Router history={browserHistory}> 
     <Route path="/" component={Main}> 
      <Route path="RegistrationForm" component={RegistrationForm}/> 

      <Route path="todoapp" component={TodoApp}/> 
      <IndexRoute component={Login}/> 
     </Route> 
     </Router>, 
     document.getElementById('app') 
); 
+0

ことはあなたの 'location.href'は働いていませんか? –

+0

働いています。しかし、私は/location.href='/todoapp 'をリダイレクトしたい。セッションで。私はfom応答を受け取りました – Sweety

+0

もし私が正しいとしたら、このようなものが必要です: '/ todoapp/sessionValue'? –

答えて

0

あなたは通りのルートで追加のパラメータを追加することができます:それは

<Route path="todoapp/:sessionValue" component={TodoApp} /> 

それを保証するだろう、URL todoappは余分なパラメータなしで開けませんsessionValue。オプションの場合は、path="todoapp(/:sessionValue)"とすることができます。

そして、あなたのlogin.jsxであなたのようにセッションパラメータを渡すことができます。

location.href = '/todoapp/sessionValue'; 

OR

browserHistory.push('/todoapp/sessionValue'); 
+0

このエラーが表示されます。SyntaxError:expect.htmlを追加しました。location.href = '/ todoapp /:sessionValue'; "Route path =" todoapp /:sessionValue "コンポーネント= {TodoApp} /> – Sweety

+0

これはbrowserHistory.push( '/ todoapp/sessionValue')で動作します。 – Sweety

+0

@vaishnaviaherあなたは歓迎です –

関連する問題