我有这个redux
设置,我有一些reducer用于auth ruducer,我想使用localstorage,对于rest reducer,我想使用session storage。怎么做
import { configureStore } from "@reduxjs/toolkit";
import { persistStore, persistReducer, createTransform } from "redux-persist";
import rootReducer from "./reducers";
import { setupListeners } from "@reduxjs/toolkit/dist/query";
import { parse, stringify } from "flatted";
import { apiSlice } from "apiHelpers/ApiSlice";
import sessionStorage from "redux-persist/lib/storage/session";
const persistConfig = {
key: "root",
storage: sessionStorage,
whitelist: [
"cart",
],
};
const sagaMiddleware = createSagaMiddleware();
const persistedReducer = persistReducer(persistConfig, rootReducer);
const store = configureStore({
reducer: persistedReducer,
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware({
sentryReduxEnhancer,
serializableCheck: false,
})
});
setupListeners(store.dispatch);
export const persistor = persistStore(store);
export default store;
1条答案
按热度按时间2eafrhcq1#
您可以使用嵌套持久化
嵌套持久化对于包含不同的存储适配器、代码拆分或深度过滤非常有用。
为auth reducer设置本地存储,通过
blacklist
选项为root reducer设置会话存储excludeauth reducer。例如
本地存储中的数据:
会话存储中的数据:
stackblitz