2.1.1 • Published 5 years ago
redux-anon-reducer v2.1.1
redux-anon-reducer
A simple anonymous function reducer for use with redux
Installation
npm install --save-dev redux-anon-reducer
Usage
To use redux-anon-reducer
, your actions must follow the Flux Standard Action format
Create an actionMap, with keys of your action types corresponding to the relevant state updater (functions inside what is normally the reducer file)
import * as actiontypes from './actiontypes';
import * as stateupdaters from './stateupdaters';
const actionMap = {
[actiontypes.LOAD_QUIZ]: stateupdaters.loadQuiz,
[actiontypes.GENERATE_QUIZ]: stateupdaters.generateQuiz,
[actiontypes.SET_ANSWER]: stateupdaters.setAnswer,
[actiontypes.SUBMIT_ANSWERS]: stateupdaters.submitAnswers,
[actiontypes.GET_LEADERBOARDS]: stateupdaters.getLeaderboards,
[actiontypes.GET_VALIDQUIZCODES]: stateupdaters.getValidQuizCodes,
[actiontypes.GET_VALIDQUIZOPTIONS]: stateupdaters.getValidQuizOptions
}
In your store.js, create the reducer
import anonReducer from 'redux-anon-reducer';
import actionmap from './actionmap';
const reducer = anonReducer(actionmap);
In the case of sliced reducers, you can pass in an initial return state.
import { combineReducers } from 'redux';
const initialReturn = ...
const singleReducer = anonReducer(actionmap, initialReturn);
const reducer = combineReducers({ singleReducer })
In the case where the reducers correspond exactly to properties of your inital state, we have provided a helper.
import { combineReducers } from 'redux';
import { anonReducersFromInitialState } from 'redux-anon-reducer';
import actionmaps from './actionmaps';
const initialState = ...
const reducer = combineReducers(anonReducersFromInitialState(actionmaps, initialState))