React router not showing browser history

I'm learning from this tutorial but I keep getting this error:

'react-router' does not contain an export named 'browserHistory'.

The file that has react-router is this:

import React from 'react';
import ReactDOM from 'react-dom';
import { Router, browserHistory } from 'react-router';
import routes from './routes';

ReactDOM.render(
  <Router history={browserHistory} routes={routes} />, 
  document.getElementById('root')
);

Answers


You need to get browserHistory from the history module now.

import createHistory from 'history/createBrowserHistory'

Note that they changed the module API recently so if you are using the latest version the import slightly changed:

import { createBrowserHistory } from 'history'

I had the same problem and I wasted a couple of days to figure it out. This error happens simply because react-router v4 does not have the browserHistory (I don't know if that's a good thing or not though). I solved the issue by installing v3 like this:

npm install react-router@3 --save

You are using version 4 of react-router.

Either downgrade the package or follow the instructions in this SO answer to make it work with v4.


Use the Version 3 and install again as

npm install react-router@3

you will be up and running.


Simple Solution

method 1:

npm install --save history

use this now:

import createHistory from 'history/createBrowserHistory'

method:2

Use Version 3  

npm install react-router@3

Need Your Help

Using stdlib's rand() from multiple threads

c++ c multithreading random

I have several threads which all run the same function. In each of these they generate a different random number several times. We tried to do this by putting srand(time(0)) at the start of the fun...

Git Diff - How do I revert selected lines or chunks

git diff git-gui

In Git GUI I can select parts of a diff and stage just those lines or chunks. How would I do the opposite, as in roll back changed lines in a file. Usually these are accidental white space changes ...