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.

laser
  • 1,388
  • 13
  • 14
Nick Pineda
  • 6,354
  • 11
  • 46
  • 66

1 Answers1

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

Eelke
  • 2,267
  • 1
  • 22
  • 26
  • Course! Curious though, does babel-loader somehow keep it working? Cause I updated the tutorials react-router to the most current version ( react-router@1.0.0-rc1) and their example still works with run. – Nick Pineda Sep 20 '15 at 19:35
  • maybe forgot to restart the watch/build process? – Eelke Sep 20 '15 at 19:39
  • 4
    Upgrade info is now on the [changelog](https://github.com/rackt/react-router/blob/832c42946c874fe56ffde0066b1088054311cb98/CHANGES.md) – br3w5 Nov 11 '15 at 21:51
  • 3
    React.render() is deprecated. Use ReactDOM instead. – devsathish Feb 19 '16 at 06:08