Redux で State をリセットする
ログアウトしたときなどに、ReduxのStateをまっさらにリセットしたいことがある。 そういう場合は下記のように、rootReducer内でログアウトactionを拾ってからReducerを更新する。
なお、一部のstateだけはリセットしたくない場合は、そのstateだけ残せばよい。
例えば下記では、react-routerを用いているため router
だけは残している。
import { createStore, combineReducers } from 'redux'; import { routerReducer } from 'react-router-redux'; import reducers from '../reducers'; const appReducer = combineReducers({ ...reducers, router: routerReducer }); const rootReducer = (state, action) => { if (action.type === 'LOGOUT') { const { router } = state; state = { router }; } return appReducer(state, action); };