react-router : run is not a function

Nick Pineda picture Nick Pineda · Sep 20, 2015 · Viewed 18.9k times · Source

A Egghead tutorial teaches it like this:

var React = require('react');
var Router = require('react-router');
var routes = require('./config/routes');

Router.run(routes, function(Root){
  React.render(<Root />, document.getElementById('app'));
});

Yet I get this error:

Uncaught TypeError: Router.run is not a function

note: I've already updated react-router to the recent version.

Answer

Eelke picture Eelke · Sep 20, 2015

Since the release of React Router v1.0, the run method has been removed, these breaking changes are documented in the upgrade guide. Your code would roughly translate to this:

ReactDOM.render(<Router>{routes}</Router>, document.getElementById('app')) 

https://github.com/rackt/react-router/blob/832c42946c874fe56ffde0066b1088054311cb98/CHANGES.md