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

Redux Toolkit中AsyncThunkAction无法传入dispatch的TS2345错误排查

问题:Redux Toolkit异步Action在dispatch时触发TS2345类型错误

代码定义情况

1. Slice中的异步Action

export const addItem = createAsyncThunk(
    'itemPage/addItem',
    async (itemInput: ItemInput) => {
        return await itemService
            .addItem(itemInput)
            .catch((err: any) => {
                console.log("Error:", err);
            });
    },
)

2. hooks.ts中的useAppDispatch定义

初始写法:

export const useAppDispatch = () => useDispatch<AppDispatch>();

后续修改为:

export const useAppDispatch = useDispatch.withTypes<AppDispatch>();
export const useAppSelector = useSelector.withTypes<RootState>();

3. 组件中的使用代码

const dispatch = useAppDispatch();
...
dispatch(addItem(itemInput));

触发的错误信息

TS2345: Argument of type 'AsyncThunkAction<void | AddItem, ItemInput, AsyncThunkConfig>' is not assignable to parameter of type 'AnyAction'.
23 | dispatch(addItem(itemInput));
| ^^^^^^^^^^^^^^^^^^

错误复现步骤

  • 打开终端
  • 执行命令:cd src && cd Client && cd RedGranite.Client.Web
  • 运行npm install安装依赖
  • 执行npm run build即可触发该类型错误

疑问

我的定义哪里存在问题?为什么无法在dispatch中直接使用addItem这个异步Action?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 11:36:07