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

Redux Toolkit中createAsyncThunk报错:rejectWithValue未定义

问题分析与解决

核心错误原因

你把createAsyncThunk异步函数的参数顺序搞反了。createAsyncThunk的异步回调函数第一个参数是调用该thunk时传入的payload数据,第二个参数才是包含rejectWithValue等方法的thunkAPI对象。你现在把thunkAPI放在了第一个参数位置,当调用getData时如果没有传入payload,这个参数就会是undefined,自然无法解构出rejectWithValue。

额外的axios导入问题

另外你的axios导入也存在错误:import { Axios } from "axios"是导入axios的类,实际应该用默认导入的axios实例来发起请求,也就是import axios from "axios"。

修正后的代码

import { createSlice, createAsyncThunk } from "@reduxjs/toolkit";
import axios from "axios"; // 修正axios导入

// 调整参数顺序:第一个是payload(用_占位表示不需要),第二个是thunkAPI
export const getData = createAsyncThunk("data/get", async (_, thunkAPI) => {
  try {
    const response = await axios.get("/data"); // 使用axios实例发起请求
    return response.data;
  } catch (error) {
    const { rejectWithValue } = thunkAPI;
    // 加可选链避免error.response不存在的情况
    return rejectWithValue(error.response?.data || error.message);
  }
});

关于你的其他疑问

  • 不需要安装额外依赖包,@reduxjs/toolkit已经内置了所需的thunk功能
  • 语法规则没有变更,只是你对createAsyncThunk的参数定义逻辑理解有误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:03:01