Redux Bertahan, rehidrasi tidak berfungsi di Android

Saya memiliki basis aplikasi di React Native & Expo. Aplikasi & redux saya tetap berfungsi dengan baik sampai saya menghentikan proses aplikasi. Setelah diluncurkan kembali, redux tetap tidak dapat direhidrasi (tidak ada kesalahan) dan semua data yang disimpan di penyimpanan hilang.

Adakah yang tahu apa yang saya lakukan salah? Atau mungkin saya tidak mengatur sesuatu?

Ini konfigurasi toko saya.

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());
}

person Greg    schedule 31.10.2018    source sumber


Jawaban (1)


Bagaimana Anda mem-bootstrap aplikasi Anda? Apakah Anda menggunakan react-native-navigation ? Atau pendekatan rooter lain?

Konfigurasi ini sepertinya tidak salah, tapi mungkin masalahnya ada pada cara Anda membungkus root Anda (mungkin Anda harus membagikan bagian itu juga)

lihat dari dokumentasi redux-persist tentang cara menggabungkan root Anda dengan 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>
  );
};
person Jojo    schedule 16.01.2019