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

Redux Toolkit中dispatch调用createAsyncThunk方法提示未定义如何解决

问题原因
  • 你在home reducer文件中通过createAsyncThunk创建的getOffers方法没有对外导出,只有reducer本身被默认导出了,外部文件无法访问到这个方法
  • home.js组件内没有导入getOffers方法,直接调用自然会触发未定义的引用错误
修复步骤
  1. 修改home reducer文件,在原有导出逻辑的基础上新增对getOffers的导出:
// 原有代码
export default home.reducer;
// 新增如下代码
export { getOffers };
  1. 在home.js组件的导入区域,添加对getOffers的导入,将路径替换为你项目中home reducer文件的实际存储路径即可:
// 示例路径,根据你的项目结构调整
import { getOffers } from '../../store/slices/home';
可选优化

你当前的逻辑只处理了异步请求成功的状态,建议补充pending、rejected状态的处理,完善加载态、错误态的展示:

extraReducers: builder => {
  builder
    .addCase(getOffers.pending, (state) => {
      state.offers.loader = true;
      state.offers.err = null;
    })
    .addCase(getOffers.fulfilled, (state, action) => {
      state.offers.loader = false;
      state.offers.data = action.payload
    })
    .addCase(getOffers.rejected, (state, action) => {
      state.offers.loader = false;
      state.offers.err = action.error.message
    });
},

内容的提问来源于stack exchange,提问作者Erbaz Kamran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:57:01