Как сохранить состояние во всех срезах редуктора, используя приставку persist? - PullRequest
0 голосов
/ 08 февраля 2019

Я добавил, что избыточность сохраняется в моем приложении.У меня есть корневой редуктор, который содержит различные редукторы, такие как «Auth», «Заказы», ​​«Продукты», «Транзакции» и т. Д.

Проблема заключается в том, что редуктор «Мои заказы и продукты» сохраняется правильно, но редуктор «Аутентификация и транзакции» не выполняется.persist.

Я попытался отладить, я не вижу данных в срезе Auth и Transactions корневого редуктора

Это мой верхний уровень конфигурации

const persistConfig = {
  key: 'root',
  storage,
  // blacklist: ['navigation']   pass state which you want to ignore
  blacklist: ['navigation', 'Error', 'Address', 'form'],
  stateReconciler: autoMergeLevel2,
};
const pReducer = persistReducer(persistConfig, rootReducer);

экспорт как

export const configureStore = createStore(pReducer, composeEnhancers(applyMiddleware(thunk)));
export const persistor = persistStore(configureStore);

в моем приложении. Js


  <Provider store={store}>
      {/* the loading and persistor props are both required! */}
        <PersistGate loading={<Spinner />} persistor={persistor}>
           <CommuneVendorRoot />
       </PersistGate>
   </Provider>

1 Ответ

0 голосов
/ 09 февраля 2019
import { persistCombineReducers } from 'redux-persist'
import storage from 'redux-persist/es/storage'
import todos from '../reducers/reducers';
import autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';

console.log(todos)
const config = {
  key: 'root',
  storage: storage,
  debug: true,
  stateReconciler: autoMergeLevel2
};


const rootReducer = persistCombineReducers(config, {
  Transactions: todos
});
export default rootReducer;

Пожалуйста, проверьте код выше, он работает нормально.и дайте мне знать, если у вас все еще есть проблема

...