@elastik/reduce-reducers
v1.0.5
Published
Reduce multiple reducers into a single reducer. This is a fork of reduce-reducers with dependabot updates applied.
Downloads
8
Readme
@elastik/reduce-reducers
Reduce multiple reducers into a single reducer from left to right
NOTE
This is a fork of reduce-reducers, simply with the dependabot updates merged, and republished as @elastik/reduce-reducers
Install
npm install @elastik/reduce-reducers
Usage
import reduceReducers from '@elastik/reduce-reducers';
const initialState = { A: 0, B: 0 };
const addReducer = (state, payload) => ({ ...state, A: state.A + payload });
const multReducer = (state, payload) => ({ ...state, B: state.B * payload });
const reducer = reduceReducers(initialState, addReducer, multReducer);
const state = { A: 1, B: 2 };
const payload = 3;
reducer(state, payload); // { A: 4, B: 6 }
FAQ
Why?
Originally created to combine multiple Redux reducers that correspond to different actions (e.g. like this). Technically works with any reducer, not just with Redux, though I don't know of any other use cases.
What is the difference between reduceReducers
and combineReducers
?
This StackOverflow post explains it very well: https://stackoverflow.com/a/44371190/5741172