Connected React Router
A Redux binding for React Router v4.
Main features
:sparkles: Synchronize router state with redux store through uni-directional flow (i.e. history -> store -> router -> components).
:gift: Support React Router v4.
:sunny: Support functional component hot reloading while preserving state (with react-hot-reload).
:tada: Dispatching of history methods (push
, replace
, go
, goBack
, goForward
) works for both redux-thunk and redux-saga.
:snowman: Nested children can access routing state such as the current location directly with react-redux
's connect
.
:clock9: Support time traveling in Redux DevTools.
:gem: Support Immutable.js
:muscle: Support TypeScript
Installation
Using npm:
$ npm install --save connected-react-router
Or yarn:
$ yarn add connected-react-router
Usage
Step 1
- Create a
history
object. - Wrap the root reducer with
connectRouter
and supply thehistory
object to get a new root reducer. - Use
routerMiddleware(history)
if you want to dispatch history actions (e.g. to change URL withpush('/path/to/somewhere')
).
Step 2
- Wrap your react-router v4 routing with
ConnectedRouter
and pass thehistory
object as a prop. - Place
ConnectedRouter
as a child ofreact-redux
'sProvider
.
Now, it's ready to work!