-1

我正在开发一个 react 应用程序,最近在我的 mac 上升级到 node12.10.0 并且看到了大量的包问题。我在我的项目中升级了很多包,但是当我调用persistor.purge() 时似乎出现了一个错误:

TypeError: Cannot read property 'getItem' of undefined
getStoredState
node_modules/redux-persist/es/getStoredState.js:19
  16 |   deserialize = defaultDeserialize;
  17 | }
  18 | 
> 19 | return storage.getItem(storageKey).then(function (serialized) {
  20 |   if (!serialized) return undefined;else {
  21 |     try {
  22 |       var state = {};
View compiled
Object../src/index.js
src/index.js:26
  23 | debugger;
  24 | debugger;
  25 | 
> 26 | getStoredState({}).then((err, restoredState) => {
  27 |     if(restoredState) {
  28 |         let storedAppVersion = restoredState.app ? restoredState.app.version : null;
  29 |         // Purge the persisted state if the version has changed

当我在以下减速器代码中点击 persistor.purge() 时,错误本身似乎发生了:

case REHYDRATE:
      let isValid = isTokenInLocalStorageValid();
      if(isValid) {
        let storedState = action.payload.user;
        let newState = Object.assign({}, storedState, { status: null });
        return newState;
      }
    debugger;
    debugger;
      persistor.purge();

这是我创建 peristor 和商店的代码:

export const history = createBrowserHistory();

const sagaMiddleware = createSagaMiddleware();
const initialState = {}
const middleware = [
    thunk,
    sagaMiddleware,
    routerMiddleware(history)
]

const composedEnhancers = compose(
    applyMiddleware(...middleware)
)

debugger;
debugger;

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

const persistedReducer = persistReducer(persistConfig, rootReducer(history));
const store = createStore(
    persistedReducer,
    initialState,
    composedEnhancers
)
store.runSaga = sagaMiddleware.run(sagas);
let persistor = persistStore(store)

export default () => {
    return { store, persistor }
}

我查看了设置示例,但没有发现问题可能出在哪里。

4

1 回答 1

1

出于某种原因,它说存储是未定义的。我敢肯定你很可能已经检查过了,但是在错误指向的文件中;您要导入存储吗?

于 2021-03-12T22:07:54.283 回答