react-router : run is not a function

2019-01-17 19:30发布

问题:

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.

回答1:

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