redux-router
redux-router copied to clipboard
index.js:34416 Uncaught TypeError: createHistory is not a function
Version ^2.1.2
react-router version: "react-router": "^3.0.0", history version: "history": "^4.3.0",
Steps to reproduce
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware, compose } from 'redux';
import { Router, browserHistory } from 'react-router';
import { reduxReactRouter, routerStateReducer, ReduxRouter } from 'redux-router';
import reduxThunk from 'redux-thunk';
import { createHistory } from 'history';
import rootReducer from './core/rootReducer';
import routes from './core/routes';
import * as axios from './utils/axios.js';
import { AUTH_USER } from './authentication/types';
const store = compose(applyMiddleware(reduxThunk),
reduxReactRouter({ routes, createHistory })
)(createStore)(rootReducer);
const token = localStorage.getItem('token');
if (token) {
store.dispatch({ type: AUTH_USER });
}
ReactDOM.render(
<Provider store={store}>
<ReduxRouter>
<Router>
{routes}
</Router>
</ReduxRouter>
</Provider>
, document.querySelector('.main')
);
Expected Behavior
Work properly.
Actual Behavior
It return an error index.js:34416 Uncaught TypeError: createHistory is not a function(…)
After changing import { createHistory } from 'history';
to import createHistory from 'history/createBrowserHistory';
The error become Uncaught TypeError: history.getCurrentLocation is not a function
Solution?
Did you solved this issue finally?
Thanks
@andfk no. I've changed my plugin to react-router-redux instead. maybe the problem lies within the history package i used is unsupported
@ssuhat great. I ended doing the same. Thanks for reply
Why was it closed? It still doesn't work. Moreover react-router-redux is not a solution. It doesn't have params in store. I propose to reopen this bug.
@Darmikon ok i reopen it.
Any news here? :(
I had the same error when using useRouterMatch, which apparently can't be used in the same component that defines the routing.
I don't know if it would be the same here, but in my case moving the <Router> tags from App.js to ReactDom.render in index.js solved the issue.
import {BrowserRouter as Router} from 'react-router-dom'
ReactDOM.render(
<Router>
<App />
</Router>,
document.getElementById('root'))