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

React Redux Toolkit调用dispatch报Object(...)不是函数如何解决

问题根因

你在Redux Toolkit的createSlice配置中写错了核心字段名,把要求的复数形式reducers写成了单数reducer,导致框架没有自动生成对应的login action creator,所以你导出的login是undefined,调用时自然会抛出「不是函数」的类型错误。

修复方案

只需要修改src > futures > users.js里的createSlice配置即可,修改后的完整代码如下:

import { createSlice } from "@reduxjs/toolkit";

const userSlice = createSlice({
  name: "user",
  initialState: { value: { name: "", age: 0, gender: "" } },
  // 这里把单数reducer改成复数reducers即可
  reducers: {
    login: (state, action) => {
      state.value = action.payload;
    },
  },
});

export const { login } = userSlice.actions;
export default userSlice.reducer;

修改后重新运行项目,点击Login按钮就能正常更新Profile的用户信息了,其余代码无需调整。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:15:02