Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork23
♻️ higher-order reducer to ignore redux actions
License
omnidan/redux-ignore
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
higher-order reducer to ignore redux actions
can be used to avoid performance problems in large apps by skipping reducer subtrees
npm install --save redux-ignoreimport{ignoreActions,filterActions}from'redux-ignore';ignoreActions(reducer,[ARRAY_OF_ACTIONS])ignoreActions(reducer,(action)=>!action.valid)filterActions(reducer,[ARRAY_OF_ACTIONS])filterActions(reducer,(action)=>action.valid)
redux-ignore is a reducer enhancer (higher-order reducer), it provides theignoreActions function, which takes an existing reducer and either:
- An array of actions to be ignored, or...
- A predicate function for filtering out actions.
Firstly, importredux-ignore:
// Redux utility functionsimport{combineReducers}from'redux';// redux-ignore higher-order reducerimport{ignoreActions}from'redux-ignore';
Then, addignoreActions to your reducer(s) like this:
combineReducers({counter:ignoreActions(counter,[INCREMENT_COUNTER])});
Now you won't be able to increment the counter anymore, because theINCREMENT_COUNTER action is ignored.
Alternatively, you can ignore actions via a predicate function:
combineReducers({counter:ignoreActions(counter,(action)=>action.type===INCREMENT_COUNTER)});
You can also usefilterActions to only accept actions that are declared in an array, or that satisfy the predicate function:
import{combineReducers}from'redux';import{filterActions}from'redux-ignore';// pull in the filterActions functionimport{STAY_COOL,KEEP_CHILLIN}from'./actions';import{counter,notACounter}from'./reducers';combineReducers({counter:filterActions(counter,(action)=>action.type.match(/COUNTER$/)),// only run on actions that satisfy the regexnotACounter:filterActions(notACounter,[STAY_COOL,KEEP_CHILLIN])// only run for these specific relaxing actions});
Have a read of theImplementing Undo History recipein the Redux documents, which explains in detail how higher-order reducers work.
MIT, seeLICENSE.md for more information.
About
♻️ higher-order reducer to ignore redux actions
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors10
Uh oh!
There was an error while loading.Please reload this page.