Skip to content

frankwallis/combine-section-reducers

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

combineSectionReducers

One of the best ways to create a big reducer.

npm version

Installation

npm install --save combine-section-reducers

What's the 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

Usage

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.

Example

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
    },
  }),
})

License

MIT

About

One of the best ways to create a big reducer.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%