#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. Я внес в черный список те, которые я не хочу сохранять, поскольку они, вероятно, будут меняться при каждом перезапуске приложения