Skip to content

Legacy Reducer Usage

This guide shows how to listen to Redux Remember actions in plain Redux reducers (without Redux Toolkit).

Redux Remember exports two action types:

import { REMEMBER_REHYDRATED, REMEMBER_PERSISTED } from 'redux-remember';
const defaultState = {
isRehydrated: false,
isPersisted: false
};
const reduxRemember = (state = defaultState, action) => {
switch (action.type) {
case REMEMBER_REHYDRATED:
// "action.payload" is the Rehydrated Root State
return {
...state,
isRehydrated: true
};
case REMEMBER_PERSISTED:
return {
...state,
isPersisted: true
};
default:
return state;
}
}
export default reduxRemember;

Include the reducer in your store setup:

import { createStore, combineReducers, compose } from 'redux';
import { rememberReducer, rememberEnhancer } from 'redux-remember';
import reduxRemember from './reducers/reduxRemember';
const reducers = combineReducers({
reduxRemember,
// ... other reducers
});
const rememberedKeys = ['myStateIsRemembered'];
const store = createStore(
rememberReducer(reducers),
compose(
rememberEnhancer(
window.localStorage,
rememberedKeys
)
)
);
  • action.payload contains the complete rehydrated root state
  • Dispatched once when the application loads
  • Use this to set a flag that state is ready
  • Dispatched after state has been successfully saved
  • Useful for showing status indicators
  • Track when state is ready for use
  • Implement loading screens (see Rehydration Gate pattern)
  • Debug persistence events
  • Show save status to users