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

使用Redux Toolkit时报错is not a function该如何解决?

错误原因

你遇到的报错本质是导入对象不匹配导致调用了不存在的方法:

  • 你编写的createSlice文件中,默认导出的是切片的reducer对象,authActions才是包含login方法的action生成器集合,且为具名导出
  • Header组件中你用默认导入拿到的是reducer对象,而非action集合,调用authAction.login()自然会触发「不是函数」的报错
修复方案
  1. 修改Header组件的导入语句,将默认导入替换为匹配的具名导入:
// 替换原导入语句
import { authActions } from "../store/Auth";
  1. 同步修改dispatch调用处的变量名:
onClick={() => {
  dispatch(authActions.login());
}}
排查小技巧

你代码中已经写了console.log("Auth:", authAction);,打开浏览器控制台查看该输出,就能发现你拿到的是reducer对象,并非你预期的action集合,这类导入不匹配的问题都可以通过打印导入对象快速定位。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:09:02