connected-react-router: TypeError: Cannot read property 'pathname' of undefined
Looks like this is a regression of https://github.com/supasate/connected-react-router/issues/54, and potentially related to https://github.com/supasate/connected-react-router/issues/183
But I am getting a TypeError: Cannot read property 'pathname' of undefined error when simply following the docs.
// reducers.ts
import { combineReducers } from 'redux'
import { connectRouter } from 'connected-react-router'
export const createRootReducer = (history) => combineReducers({
routing: connectRouter(history)
})
// store.ts
import { createBrowserHistory } from 'history'
import { createStore, applyMiddleware } from 'redux'
import { routerMiddleware } from 'connected-react-router'
import { createRootReducer } from './reducers'
export const history = createBrowserHistory()
export const store = createStore(
createRootReducer(history),
applyMiddleware(routerMiddleware(history))
)
// app.tsx
import * as React from 'react'
import * as ReactDOM from 'react-dom'
import { Provider } from 'react-redux'
import { Route } from 'react-router-dom'
import { ConnectedRouter } from 'connected-react-router'
import { store, history } from './store'
const App = () => (
<Provider store={store}>
<ConnectedRouter history={history}>
<React.Fragment>
<Route exact path="/" component={HomePage} />
<Route path="/about" component={AboutPage} />
<Route path="/topics" component={TopicsPage} />
</React.Fragment>
</ConnectedRouter>
</Provider>
)
ReactDOM.render(<App />, document.getElementById('app'))
// versions
"react": "^16.6.0"
"react-dom": "^16.6.0"
"react-redux": "^5.1.0"
"react-router-dom": "^4.3.1"
"redux": "^4.0.1"
"connected-react-router": "^5.0.1"
"history": "^4.7.2"
About this issue
- Original URL
- State: open
- Created 6 years ago
- Reactions: 32
- Comments: 32 (3 by maintainers)
For me, this arrived when I had not passed the value of prop βtoβ in NavLink. I hope this may work for a few people over here. π
Found a solution. Do not define a router props when combining reducers, but pass it in the createStore call as connectRouter(history)(rootReducer), f.e.
root-reducer.js
store.js
Worked like charm for me.
Just a note that I also faced this error while using NavLink on react-router-dom 5.1.2. The error happened because I forgot the
toattribute. It might be useful to make this error clearer.@greevz It might be related to the requirement that
routerReducermust be placed under keyrouter, while you seem to userouting.Check https://github.com/supasate/connected-react-router/blame/master/README.md#L42
Same issue here. Trying to migrate from react-router-redux. Followed the docs and I get this error. Have tried several old version as well, but nothing is working.
I have verified that I am using the
routerkey as well.I downgraded to v4.3 and that seemed to fix it. Not ideal though, as I try to keep everything up to date using https://www.npmjs.com/package/npm-check-updates
But how to implement on react 18