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> );