You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React 18中无法从redux-persist导入模块及相关报错问题

问题解决方案

1. 解决redux-persist模块无法加载/跳转的问题

  • 执行依赖重装,清除安装缓存:
    rm -rf node_modules package-lock.json yarn.lock
    npm install # 或 yarn install
    
  • 重启IDE(如VS Code),并清除TypeScript缓存:
    • 按下Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac),输入TypeScript: Restart TS Server执行
  • 检查tsconfig.json的模块解析配置,确保moduleResolution设置为Node16、NodeNext或Node:
    {
      "compilerOptions": {
        "moduleResolution": "Node16"
      }
    }
    

2. 解决Error: No data found at state.baseApi报错

该报错的核心原因是未将RTK Query的baseApi reducer添加到Redux Store的reducer配置中。RTK Query要求必须将API的reducer挂载到store.reducer的[baseApi.reducerPath]字段下,修改后的代码如下:

import { configureStore } from '@reduxjs/toolkit';
import { setupListeners } from '@reduxjs/toolkit/query/react';
import { baseApi } from './base-api';
import {
  persistStore,
  FLUSH,
  REHYDRATE,
  PAUSE,
  PERSIST,
  PURGE,
  REGISTER,
} from 'redux-persist';
import { announcementSlice } from '../../components/molecules/Announcement/state/announcement.slice';

export const store = configureStore({
  reducer: {
    announcements: announcementSlice.reducer,
    // 新增:挂载baseApi的reducer
    [baseApi.reducerPath]: baseApi.reducer,
  },
  middleware: (getDefaultMiddleware) =>
    getDefaultMiddleware({
      serializableCheck: {
        ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],
      },
    }).concat(baseApi.middleware),
});

export const persistor = persistStore(store);

export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;

setupListeners(store.dispatch);

修改后RTK Query即可找到对应state路径,报错会消失。


内容的提问来源于stack exchange,提问作者Kaleem Shoukat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:53:19