I try to transform my Redux state in Redux-Persist but I don't know how to write the code because I use combineReducers.
This is how looks my store:
import { createStore, combineReducers } from 'redux'
import { usersReducer } from './users';
import { eventsReducer } from './events';
export const store = createStore(combineReducers({
users: usersReducer,
events: eventsReducer
}));
And this is how looks a store:
const initialState = {
loggedIn: false,
thisUser: []
}
export function usersReducer(state = initialState, action) {
switch (action.type) {
case 'users/loggedIn':
return { ...state, loggedIn: action.payload }
case 'users/addUser':
return { ...state, thisUser: action.payload[0] }
case 'users/setActivated':
return { ...state, thisUser: { ...state.thisUser, activated: action.payload } }
case 'clearAll':
return {
thisUser: []
}
default:
return state
}
}
Can somebody help me, please?
You can just make changes to your code in store.js
.
@reduxjs/toolkit
packagenpm install @reduxjs/toolkit
yarn add @reduxjs/toolkit
redux-persist
packagenpm install redux-persist
yarn add redux-persist
store.js
fileimport { combineReducers } from 'redux'
import { configureStore } from '@reduxjs/toolkit'
import { usersReducer } from './users';
import { eventsReducer } from './events';
import {
FLUSH, PAUSE,
PERSIST, persistReducer, PURGE,
REGISTER, REHYDRATE
} from 'redux-persist';
import storage from 'redux-persist/lib/storage';
// combine all reducers
const reducers = combineReducers({
users: usersReducer,
events: eventsReducer
})
export const store = configureStore({
reducer: persistReducer(
{
key: 'root',
storage
},
reducers
),
middleware: getDefaultMiddleware => getDefaultMiddleware({
serializableCheck: {
ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER]
}
})
})
import { combineReducers } from 'redux'
import { configureStore } from '@reduxjs/toolkit'
import { usersReducer } from './users';
import { eventsReducer } from './events';
import {
FLUSH, PAUSE,
PERSIST, persistReducer, PURGE,
REGISTER, REHYDRATE
} from 'redux-persist';
import storage from 'redux-persist/lib/storage';
// combine all reducers
const reducers = combineReducers({
users: persistReducer(
{
key: 'users',
storage
},
usersReducer
),
events: eventsReducer
})
export const store = configureStore({
reducer: reducers,
middleware: getDefaultMiddleware => getDefaultMiddleware({
serializableCheck: {
ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER]
}
})
})
Here are the references: