A collection of utility functions for redux applications. These helpers can help reduce boilerplate when accomplishing common redux tasks. Designed to be used in tandem with redux-actions.
The key helpers in this library are:
setState(path)
: set a value in state when an action is dispatched.unsetState(path)
: clear a value in state when an action is dispatched.selectorForSlice(path)
: create aselect
function that can be used to create nested selectors for a path.
import { setState, selectorForSlice } from '@launchpadlab/lp-redux-utils'
import { createAction, handleActions } from 'redux-actions'
// Generic setter from redux-actions
const setUser = createAction('SET_USER')
const reducer = handleActions(
{
// Set a value in state when the action is dispatched
[setUser]: setState('stuff.user'),
},
{}
)
// Create selectors for nested values
const select = selectorForSlice('stuff')
const userSelector = select('user')
// userSelector(state) -> <value at stuff.user>
Documentation and usage info can be found in docs.md.
This package follows the Opex NPM package guidelines. Please refer to the linked document for information on contributing, testing and versioning.