2017-01-23 25 views
0

次のURLにユーザをリダイレクトする高速サーバを設定しました。サーバからのURLとルータが反応しないルートと一致しない

http://localhost:3000/#/user/access_token=***refresh_token=***

私が午前の問題は、フロントエンドのルートを見つけることができないということです。

特急コードは私のコード側の反応に続いて、この

res.redirect('http://localhost:3000/#/user/' + 
    querystring.stringify({ 
     access_token: access_token, 
     refresh_token: refresh_token 
}));  

のように見えますが、次のようになります。

import React, { Component } from 'react'; 
import { Router, Route, Link, IndexRoute, hashHistory, browserHistory } from 'react-router' 
import Home from './Home'; 
import Address from './User'; 

class App extends Component { 
    render() { 
    return (
     <Router history={hashHistory}> 
     <Route path='/' component={Home} /> 
     <Route path="/user/:access_token/:refresh_token" component={User} /> 
     </Router> 
    ) 
    } 
} 

私は、次のエラーを取得しています:

browser.js:49Warning: [react-router] Location "/user/access_token=xxx&refresh_token=xxx" did not match any routes

+0

パスは 'path ="/user?access_token =:access_token&refresh_token =:refresh_token "'にする必要がありますか? –

+0

@MattMokary同じエラー –

答えて

1

として、 React Routerのドキュメントでは、ルートパス定義にクエリパラメータを指定する必要はありません。Official Example

1)だからあなたのリンクは次のようにある場合:

http://localhost:3000/#/user?access_token=:access_token&refresh_token=:refres ‌​h

:あなたのリンクは次のようである場合

<Route path="/user/access_token" component={User} /> 

2):

http://localhost:3000/#/user/access_token?refresh_token=123456

は、あなたのルートは、このようにする必要があります

あなたのルートは次のようになります:

<Route path="/user" component={User} /> 
+0

また、今のように '?'ではなく '/'でクエリパラメータ文字列を開始する必要があります。 '' http:// localhost:3000 /#/ user/'+ ... 'は' 'http:// localhost:3000 /#/ userでなければなりません。 + ... ' –

関連する問題