我在redux-persist存储中为一个reducer编写了可用的redux-persist代码。我给出了reducer的初始状态来存储,每次更改reducer的状态结构后,我都会更新迁移编号(在本例中是25 ),它工作得很好。但我希望有多个reducers,并分别在它们上运行迁移(根据需要更新它们)。我也尝试过automergelevel2,但它不会更新嵌套状态键中的键。或者,除了应用迁移和automergelevel2之外,还有其他方法吗?
import rootReducer from "../reducers";
import {persistStore, persistReducer, createMigrate} from 'redux-persist';
import storage from 'redux-persist/lib/storage';
import {initialState} from "../reducers/authentication";
const middleware = [thunk];
const MIGRATION_DEBUG = false;
const migrations = {
25: state => initialState
};
const persistConfig = {
key: 'persistedReducer',
storage: storage,
version: 25,
migrate: createMigrate(migrations, {debug: MIGRATION_DEBUG}),
whitelist: [
'authentication',
]
};
const persistedReducer = persistReducer(persistConfig, rootReducer);
const store = createStore(persistedReducer, composeWithDevTools(applyMiddleware(...middleware)));
const persistor = persistStore(store);
export {persistor, store}发布于 2021-02-09 18:59:05
关于多个reducer迁移问题,我已经尝试了-失败-成功了一周,下面是我得到的解决方案。
创建一个包含在一个“rootReducer”中的reducer列表的唯一persistingReducer将不允许您单独迁移任何特定的reducer。
为了将来证明在您的任何单个reducer上的任何迁移,您应该用它们自己的persistedReducer和persistConfig包装它们。
import { createStore, combineReducers } from 'react-redux';
import { persistStore, persistReducer } from 'redux-persist';
import { r1Config, reducer1 } from './reducer1';
import { r2Config, reducer2 } from './reducer2';
const allReducers = combineReducers({
r1: persistReducer(r1Config, reducer1),
r2: persistReducer(r2Config, reducer2)
});
const store = createStore(allReducers);
const persistor = persistStore(store);然后,您可以使用它们可以理解的“迁移”对象来管理每个reducer的迁移。
https://stackoverflow.com/questions/63357004
复制相似问题