用redux-persist只保存部分存储(子状态)

pepwfjgg  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(168)

我只想保存一个reducers的子状态(placeOfLiving)。这是我想要的子集的reducer

const initialState = {
  name: 'John',
  age: 55,
  placeOfLiving: {
    city: 'Munich',
    zipCode: 1234,
  },
};

function userReducer(state = initialState, action) {
  switch (action.type) {
    // handle actions that modify the user state here
    default:
      return state;
  }
}

这是我的redux设置

import { persistStore, persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage';

const persistConfig = {
  key: 'root',
  storage,
  whitelist: ['user'],
};

const rootReducer = combineReducers({
  user: userReducer,
  settings: settingsReducer
});

const persistedReducer = persistReducer(persistConfig, rootReducer);

const store = createStore(persistedReducer);
const persistor = persistStore(store);

我怎么能只从userReducer中坚持和水合placeOfLiving呢?

lnlaulya

lnlaulya1#

有专门的图书馆

import { getPersistConfig } from 'redux-deep-persist';
import { persistStore, persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage';

const rootReducer = combineReducers({
  user: userReducer,
  settings: settingsReducer
});

const config = getPersistConfig({
    key: 'root',
    storage,
    whitelist: ['user.placeOfLiving'], 
    rootReducer

});

const persistedReducer = persistReducer(config, rootReducer);
const store = createStore(persistedReducer);
const persistor = persistStore(store);

相关问题