reducer
Declares a section of state to be calculated via a "standard" reducer function - as is typical in Redux.
This API specifically exists to help with integrations against existing Redux based libraries, and to help with gradual migration from legacy Redux code.
For example redux-first-history, requires you to attach a reducer that they provide to your store.
reducer((state = 1, action) => {
switch (action.type) {
case 'INCREMENT': state + 1;
default: return state;
}
})
Arguments
reducer (Function, required)
The reducer function. It receives the following arguments.
state
(Object, required)The current value of the property that the reducer was attached to.
action
(Object, required)The action object, typically with the following shape.
type
(string, required)The name of the action.
payload
(any)Any payload that was provided to the action.
Example
import { createStore, reducer, useStoreState, useStoreDispatch } from 'easy-peasy';
const store = createStore({
counter: reducer((state = 1, action) => {
switch (action.type) {
case 'INCREMENT': state + 1;
default: return state;
}
})
});
function Counter() {
const count = useStoreState(state => state.counter);
const dispatch = useStoreDispatch();
return (
<button onClick={() => dispatch({ type: 'INCREMENT' })}>
{count}
</button>
)
}