при многократном сбое при сохранении - PullRequest
0 голосов
/ 05 октября 2019

Я использую Redux-Persist в приложении «Реакция JS». У меня есть 2 редуктора под названием: аутентификация, потоки. когда я определяю их обоих вместе с persistReducer

import { combineReducers } from 'redux';
import storage from 'redux-persist/lib/storage' 
import { persistReducer } from 'redux-persist'
import { combineReducers } from 'redux';
import storage from 'redux-persist/lib/storage' 
import { persistReducer } from 'redux-persist'

import auth  from './auth.reducer';
import stream  from './stream.reducer';

const rootPersistConfig = {
  key: 'root',
  storage: storage,
  whitelist: ['auth','stream'],
}
const authPersistConfig = {
    key: 'auth',
    storage: storage,
  };
const streamsPersistConfig = {
  key: 'stream',
  storage: storage,
  };





const rootReducer = combineReducers({
  auth:persistReducer(authPersistConfig,auth),
  stream:persistReducer(streamsPersistConfig,stream),
});

export default persistReducer(rootPersistConfig, rootReducer)\

, происходит сбой и возникает ошибка enter image description here

, но когда я определяю только один persistReducer (независимо от того, какой изих)

import { combineReducers } from 'redux';
import storage from 'redux-persist/lib/storage' 
import { persistReducer } from 'redux-persist'

import auth  from './auth.reducer';
import stream  from './stream.reducer';

const rootPersistConfig = {
  key: 'root',
  storage: storage,
  whitelist: ['auth','stream'],
}
const authPersistConfig = {
    key: 'auth',
    storage: storage,
  };




const rootReducer = combineReducers({
  auth:persistReducer(authPersistConfig,auth),
  stream:stream
});

export default persistReducer(rootPersistConfig, rootReducer)

работает нормально и никаких ошибок не выдает.

1 Ответ

2 голосов
/ 05 октября 2019

Мое решение выглядит следующим образом:

// store.js

import { createStore, combineReducers } from 'redux'
import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage'

import auth from './auth'
import stream from './stream'

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

const rootReducer = combineReducers({
  auth,
  stream,
})

const persistedReducer = persistReducer(persistConfig, rootReducer)

export default () => {
  const store = createStore(persistedReducer)
  const persistor = persistStore(store)

  return { store, persistor }
}
...