React-Router - Uncaught TypeError: Cannot read property 'getCurrentLocation' of undefined
39,949
Solution 1
You are not passing a history to your <Router>
.
Check out the histories documentation for more information.
Solution 2
Had the same error, solved it this way:
Add
var hashHistory = ReactRouter.hashHistory;
And in the Router set the history equals to hashHistory
<Router history={hashHistory}>
So in your case:
var routes = (
<Router history={hashHistory}>
<Route path="/" component={App}>
<Route path="authors" component={AuthorPage}/>
</Route>
</Router>
);
Author by
SyndicatorBBB
"A good way to have good ideas is by being unoriginal." - Bram Cohen
Updated on September 06, 2020Comments
-
SyndicatorBBB almost 4 years
I'm using the latest version of
react-router
(version ^3.0.0).I wrote the following routing using 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;
In another JS file called
main.js
I perform the following call: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'));
When I run the code I get the following exception in Google Chrome developer tools:
Uncaught TypeError: Cannot read property 'getCurrentLocation' of undefined
Why is that? What am I missing?