Redux Persist,rehydrate 不能在 android 上工作
Posted
技术标签:
【中文标题】Redux Persist,rehydrate 不能在 android 上工作【英文标题】:Redux Persist, rehydrate not working on an android 【发布时间】:2019-04-04 06:51:59 【问题描述】:我有一个基于 React Native 和 Expo 的应用程序。我的应用程序和 redux 可以正常工作,直到我终止一个应用程序进程。重新启动后,redux persist 无法重新水化(没有错误)并且保存在存储中的所有数据都丢失了。
有人知道我做错了什么吗? 或者我没有设置什么?
这是我的商店配置。
import createStore, combineReducers, compose from 'redux';
import persistStore, persistReducer from 'redux-persist';
import storage from 'redux-persist/lib/storage';
import autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';
import appReducer from '../scenes/App/app.reducer';
//...other reducers
import actionReducer from '../lib/managers/action.reducer';
const reducer = combineReducers(
app: appReducer,
//...other reducers
action: actionReducer,
);
const persistConfig =
key: 'root',
storage,
blacklist: ['log', 'action'],
stateReconciler: autoMergeLevel2,
;
const persistedReducer = persistReducer(persistConfig, reducer);
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
function configureStore()
return createStore(persistedReducer, composeEnhancers());
【问题讨论】:
【参考方案1】:您如何引导您的应用程序?你在使用 react-native-navigation 吗?还是其他rooters方法?
这个配置似乎并没有错,但问题可能在于你如何包装你的根(也许你也应该分享那一点)
请参阅 redux-persist documentation 以了解如何使用 PersistGate
包装您的根目录:
import PersistGate from 'redux-persist/integration/react'
// ... normal setup, create store and persistor, import components etc.
const App = () =>
return (
<Provider store=store>
<PersistGate loading=null persistor=persistor>
<RootComponent />
</PersistGate>
</Provider>
);
;
【讨论】:
以上是关于Redux Persist,rehydrate 不能在 android 上工作的主要内容,如果未能解决你的问题,请参考以下文章
除了我不想在 redux-persist 中清除的内容之外,如何清除所有内容?