React-Router – 未捕获TypeError:无法读取未定义的属性'getCurrentLocation'

我正在使用最新版本的react-router (版本^ 3.0.0)。

我使用ES5编写了以下路由:

routes.js

 var React = require("react"); var Router = require("react-router"); var AuthorPage = require('./components/authors/authorPage') var App = require('./components/app') var Route = Router.Route; var routes = ( <Route path="/" component={App}> <Route path="authors" component={AuthorPage}/> </Route> ); module.exports = routes; 

在另一个名为main.js JS文件中,我执行以下调用:

main.js

 var React= require("react"); var ReactDom = require("react-dom"); var Router = require('react-router').Router; var routes = require('./routes'); ReactDom.render(<Router routes={routes}></Router>, document.getElementById('app')); 

运行代码时,我在Google Chrome开发人员工具中遇到以下例外情况:

Uncaught TypeError:无法读取未定义的属性'getCurrentLocation'

这是为什么? 我错过了什么?

你没有将历史传递给你的<Router>

查看历史文档以获取更多信息。

有同样的错误,这样解决它:

 var hashHistory = ReactRouter.hashHistory; 

而在路由器设置历史等于hashHistory

 <Router history={hashHistory}> 

所以在你的情况下:

 var routes = ( <Router history={hashHistory}> <Route path="/" component={App}> <Route path="authors" component={AuthorPage}/> </Route> </Router> );