2016-11-29 56 views
48

我正在使用最新版本的react-router(版本^ 3.0.0)。React-Router - 未捕获TypeError:无法读取未定义的属性'getCurrentLocation'

我写了使用以下路由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: Cannot read property 'getCurrentLocation' of undefined

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

回答

8

有同样的错误,解决了这种方式:

添加

var hashHistory = ReactRouter.hashHistory; 

并在路由器设置的历史等于hashHistory

<Router history={hashHistory}> 

所以你的情况:

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