redux-persist не сохраняет состояние в React Native

#reactjs #react-native #redux #redux-persist

#reactjs #react-native #redux #redux-persist

Вопрос:

Я объединил redux-persist с Redux, чтобы сохранить состояние между перезапусками приложения. В настоящее время при сборке разработчика оно никогда не сохраняет состояние.

Мой магазин

 const persistConfig = {
  key: 'root',
  storage: AsyncStorage,
  blacklist:['users', 'activity', 'meeting', 'workshop', 'predavanja', 'klizni', 'meetings', 'standing']
}

const allReducers = combineReducers({
  darkMode: persistReducer(persistConfig, darkReducer),
  users: userReducer,
  activity: activity,
  meeting: meeting,
  workshop: workshop,
  predavanja: predavanja,
  klizni: klizni,
  meetings: meetings,
  standing: standing,
});
  

Я продолжаю регистрировать состояние состояния, которое я хочу сохранить, но оно продолжает возвращаться к состоянию по умолчанию.

Ответ №1:

Есть ли какая-либо причина, по которой вы решили занести в черный список каждый редуктор в конфигурации? Если вы пытаетесь сохранить все ваше состояние Redux, вам не следует определять какой-либо черный список. Кроме того, я не вижу, как вы создаете свое хранилище redux, но оно должно выглядеть примерно так

 import { createStore } from 'redux';
import { persistStore, persistReducer } from 'redux-persist';
...
const store = createStore(persistReducer(persistConfig, allReducers));
const persistor = persistStore(store);
  

В вашем корневом компоненте вы должны ввести хранилище следующим образом:

 import { PersistGate } from 'redux-persist/integration/react';
import { Provider } from 'react-redux';
...
return (
  <Provider store={store}>
      <PersistGate loading={null} persistor={persistor}>
         .....
      </PersistGate>
   </Provider>
);
  

Редукторы должны выглядеть так, как показано в следующем фрагменте кода:

 const persistConfig = {
  key: 'root',
  storage: AsyncStorage
}

const allReducers = combineReducers({
  darkMode: darkReducer,
  users: userReducer,
  activity: activity,
  meeting: meeting,
  workshop: workshop,
  predavanja: predavanja,
  klizni: klizni,
  meetings: meetings,
  standing: standing,
});
  

Если вы выполните все эти шаги, все ваше хранилище redux должно быть сохранено.

Комментарии:

1. Я внес в черный список те, которые я не хочу сохранять, поскольку они, вероятно, будут меняться при каждом перезапуске приложения