async-redux-store-enhancer
This is a dependency free redux store enhancer that adds ability to add additional reducers and middleware after the store has been created. There is no magic happening, just using existing redux functionality, check out the source code to learn how it works.
Usage examples
npm i async-redux-store-enhancer
Injecting a reducer and middleware
; // instead of passing a reducer to createStore, we pass a reducer factory// where the only difference from normal reducer is that it takes an argument of new reducers and spreads it.const createReducer = // this creates your usual redux store, that has 2 additional methods:// injectReducer(reducerName, reducerFunction)// injectMiddleware(middlewareFunction)const store = createReducer initialState middleware; store; // that's it this adds new reducer, while preserving previous statestore; // adding new middleware is as easy as this, this new middleware function will be called after all other are called
Injecting middleware to be called before existing ones
// you can pass 4th argument { prependNewMiddleware } to the store creator factoryconst store = createReducer initialState middleware;
Using with redux dev tools
; // as per redux dev tools documentationconst composeEnhancers = window__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; const store = createReducer;