Open waynepennington opened 7 years ago
Great job on redux-injector. Super useful. Here's an idea for a utility function to dynamically add reducers on the fly. I was shocked at how simple this was to do.
//used in conjunction with redux-injector //given a plain object: reducer = {} //the reducer factory enables adding reducer functions dynamically export function ReducerFactory(initialStoreState, reducer) { return function reducerFunction(state = initialStoreState, action) { if (reducer[action.type]) { return reducer[action.type](state, action); } else { return state } } } /*EXAMPLE USE import { ReducerFactory } from './reducerFactory' import { injectReducer } from './redux-injector'; createReducers(propsID, initialStoreState) { reducer = {}; injectReducer(propsID, ReducerFactory(initialStoreState, reducer)); this.reducer[`${propsID}_SUCCESS`] = (state, action) => { return Object.assign({}, state, { error: null, isPending: false }) } this.reducer[`${propsID}_PENDING`] = (state, action) => { return Object.assign({}, state, { isPending: true }); }} this.reducer[`${propsID}_SUCCESS`] = (state, action) => { return Object.assign({}, state, { error: null, isPending: false, payload: action.payload }) } } */
Great job on redux-injector. Super useful. Here's an idea for a utility function to dynamically add reducers on the fly. I was shocked at how simple this was to do.