wwayne / redux-reset

Give redux the ability to reset the state
MIT License
96 stars 7 forks source link
javascript react redux state-management

redux-reset

Version js-standard-style Circle CI

Installation

npm install redux-reset

Basic Usage

1.Setup in createStore

import reduxReset from 'redux-reset'
...
const enHanceCreateStore = compose(
    applyMiddleware(...),
    reduxReset()  // Will use 'RESET' as default action.type to trigger reset
  )(createStore)
const store = enHanceCreateStore(reducers)

2.Dispatch reset action

store.dispatch({
  type: 'RESET'
})

Advanced Usage

Set any custom action.type to trigger reset

import Enum from 'es6-enum'
const APP = Enum('RESET')

const enHanceCreateStore = compose(
    applyMiddleware(...),
    reduxReset(APP.RESET) // Set action.type here
  )(createStore)
const store = enHanceCreateStore(reducers)

AFTER:
store.dispatch({
  type: APP.RESET
})

Reset and specific to a new initial state

store.dispatch({
  type: 'RESET',
  state: {app: {user: 'anotherUser'}} // Will use this as new initial state
})

Reset and specific to a new initial state, new state comes from a specific params in action

import Enum from 'es6-enum'
const APP = Enum('RESET')

const enHanceCreateStore = compose(
    applyMiddleware(...),
    reduxReset({
     type: APP.RESET,
     data: 'initialStateComesFrom'
    })
  )(createStore)
const store = enHanceCreateStore(reducers)

AFTER:
store.dispatch({
  type: APP.RESET,
  initialStateComesFrom: {app: {user: 'anotherUser'}}
})

License

MIT