react-router : run is not a function
Asked Answered
J

1

33

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.

Jolin answered 20/9, 2015 at 18:31 Comment(0)
T
43

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

Tefillin answered 20/9, 2015 at 19:25 Comment(4)
Course! Curious though, does babel-loader somehow keep it working? Cause I updated the tutorials react-router to the most current version ( [email protected]) and their example still works with run.Jolin
maybe forgot to restart the watch/build process?Tefillin
Upgrade info is now on the changelogHypozeugma
React.render() is deprecated. Use ReactDOM instead.Wert

© 2022 - 2024 — McMap. All rights reserved.