使路由器与来自服务器的URL不匹配根

时间:2017-01-23 20:49:38

标签: javascript reactjs react-router

我设置了快速服务器,将用户重定向到以下网址。

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:49警告:[react-router]位置   &#34; /用户/ =的access_token XXX&安培; refresh_token = XXX&#34;没有匹配任何路线

1 个答案:

答案 0 :(得分:1)

正如React Router文档所说,您不需要在路径路径定义中指定查询参数:Official Example

1)所以,如果您的链接是这样的:

  

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

然后你的路线应该是这样的:

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

2)如果你的链接是这样的:

  

http://localhost:3000/#/user?access_token=:access_token&refresh_token=:refresħ

然后你的路线应该是这样的:

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