我的持久化状态工作正常,但在从函数访问Store并使用预加载的状态参数进行一些测试后,它不能持久化.它在第一次呈现时会恢复消重状态,但没有任何内容被访问或持久保存到浏览器.我认为当状态更新时,没有什么会导致store 重现,但如何解决呢?
store
export default function setupStore (preloadedState?: PreloadedState<RootState>) {
const store = configureStore({
reducer: persistedReducer,
preloadedState,
devTools: process.env.NODE_ENV !== 'production',
middleware: getDefaultMiddleware =>
getDefaultMiddleware({
serializableCheck: {
ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],
}
}).concat(logger),
})
return store
}
export const persistor = persistStore(setupStore())
//根削减器
export const rootPersistConfig = {
key: 'root',
storage: storage,
whitelist: ['dealerStoreReducer'],//soon later,
stateReconciler: autoMergeLevel2 ,
// version: 1,
}
export const dealerStorePersistConfig = {
key: 'dealerStore',
storage: storage,
whitelist: ['cartItems','adminStore'],
// version: 1,
//blacklist: ['dealerStoreReducer'],//soon later,
stateReconciler: autoMergeLevel2 ,
}
export type DealerStoreReducer = initialStatedealerStore & PersistPartial;
const rootReducer = combineReducers({
labels: labelsReducer,
dealers: dealersReducer,
user: usersReducer,
orders: ordersReducer,
orderItems: orderItemsReducer,
dealerStore: persistReducer<initialStatedealerStore, any>(dealerStorePersistConfig, dealerStoreReducer),
})
export type RootReducer = ReturnType<typeof rootReducer>;
export const persistedReducer = persistReducer<RootReducer >(rootPersistConfig, rootReducer)
export default rootReducer
指标
root.render(
<Provider store ={setupStore()}>
<BarsContextProvider>
<PersistGate loading={null} persistor={persistor}>
<BrowserRouter>
<App />
</BrowserRouter>
</PersistGate>
</BarsContextProvider>,
</Provider>,
);