redux-router icon indicating copy to clipboard operation
redux-router copied to clipboard

index.js:34416 Uncaught TypeError: createHistory is not a function

Open stefensuhat opened this issue 8 years ago • 8 comments

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(…)

stefensuhat avatar Dec 01 '16 10:12 stefensuhat

After changing import { createHistory } from 'history'; to import createHistory from 'history/createBrowserHistory';

The error become Uncaught TypeError: history.getCurrentLocation is not a function

Solution?

stefensuhat avatar Dec 01 '16 10:12 stefensuhat

Did you solved this issue finally?

Thanks

andfk avatar Dec 04 '16 21:12 andfk

@andfk no. I've changed my plugin to react-router-redux instead. maybe the problem lies within the history package i used is unsupported

stefensuhat avatar Dec 05 '16 03:12 stefensuhat

@ssuhat great. I ended doing the same. Thanks for reply

andfk avatar Dec 05 '16 08:12 andfk

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 avatar Jan 26 '17 11:01 Darmikon

@Darmikon ok i reopen it.

stefensuhat avatar Jan 26 '17 14:01 stefensuhat

Any news here? :(

grundiss avatar Feb 05 '17 08:02 grundiss

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'))

ndeamador avatar Nov 21 '20 06:11 ndeamador