【问题标题】:Redux Persist, rehydrate not working on an androidRedux Persist,rehydrate 不能在 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());
}

【问题讨论】:

    标签: react-native react-redux expo


    【解决方案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>
      );
    };
    

    【讨论】:

      猜你喜欢
      • 2021-03-25
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 2021-06-03
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      • 2022-01-06
      相关资源
      最近更新 更多