Error Handling
Redux Remember provides robust error handling for both persistence and rehydration operations. This guide shows you how to handle errors gracefully in your application.
Error Types
Section titled “Error Types”Redux Remember exports two error types:
PersistError- Thrown when saving state to storage failsRehydrateError- Thrown when loading state from storage fails
Basic Error Handler
Section titled “Basic Error Handler”The errorHandler option in rememberEnhancer lets you handle errors from both persistence and rehydration:
import reducers from './reducers';import { configureStore } from '@reduxjs/toolkit';import { rememberReducer, rememberEnhancer, PersistError, RehydrateError } from 'redux-remember';
const rememberedKeys: (keyof typeof reducers)[] = ['user', 'settings'];const reducer = rememberReducer(reducers);const store = configureStore({ reducer, enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat( rememberEnhancer( window.localStorage, rememberedKeys, { errorHandler: (error) => { if (error instanceof PersistError) { console.error('Failed to save state:', error); // Handle persistence errors } else if (error instanceof RehydrateError) { console.error('Failed to load state:', error); // Handle rehydration errors } } } ) )});Logging to Error Tracking Service
Section titled “Logging to Error Tracking Service”Send errors to your monitoring service:
import reducers from './reducers';import * as Sentry from '@sentry/browser';import { configureStore } from '@reduxjs/toolkit';import { rememberReducer, rememberEnhancer, PersistError, RehydrateError } from 'redux-remember';
const rememberedKeys: (keyof typeof reducers)[] = ['user', 'settings'];const reducer = rememberReducer(reducers);const store = configureStore({ reducer, enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat( rememberEnhancer( window.localStorage, rememberedKeys, { errorHandler: (error) => { // Log to Sentry or similar service Sentry.captureException(error); } } ) )});Default Error Handler
Section titled “Default Error Handler”If you don’t provide an errorHandler, Redux Remember uses console.warn by default. This means errors won’t crash your app but will be logged to the console.
See Also
Section titled “See Also”- Types - Error Types - PersistError and RehydrateError definitions
- rememberEnhancer - errorHandler - API reference
- Custom Storage Driver