One of the best ways to create a big reducer.
npm install --save combine-section-reducers
Section reducers is the same as reducers but it requires the third argument to get the entire state.
(sectionState, action, state) => newSectionState
It's called a section reducer.
But we had better write it as below not to be confused when we use combineReducers
and combineSectionReducers
together.
(state, action, entireState) => newState
The usage of combineSectionReducers
is the same as Redux's combineReducers's one.
But you can pass not only normal reducers but also section reducers to it.
Also, the result of combineSectionReducers
can be used as not only a normal reducer but also a section reducers.
import { combineReducers } from 'redux'
import combineSectionReducers from 'combine-section-reducers'
// Create a big reducer.
combineSectionReducers({
a: combineSectionReducers({
a: sectionReducerA,
b: sectionReducerB
}),
b: combineSectionReducers({
a: sectionReducerC,
b: reducerA
})
})
// Use combineReducers together.
combineReducers({
a: combineSectionReducers({
a: combineReducers({
a: sectionReducerA,
b: reducerA
},
b: combineSectionReducers({
a: sectionReducerB,
b: reducerB
},
}),
b: combineReducers({
a: combineReducers({
a: sectionReducerC,
b: reducerC
},
b: combineSectionReducers({
a: sectionReducerD,
b: reducerD
},
}),
})
MIT