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

React使用Redux修改state触发事件时报TypeError: Object(...) is not a function如何解决

问题原因&修复方案

你一共出现了两处写法错误,修改后即可解决报错:

1. 修正Slice中的action导出写法

你当前的导出语句将整个actions对象赋值给了cambiarVista,导致它是一个对象而非函数,调用时触发object(...) is not a function报错。
修改Slice中的导出代码:

// 原错误写法
// export const cambiarVista = sliceCambiadorDeVista.actions;

// 修正为解构导出单个action creator
export const { cambiarVista } = sliceCambiadorDeVista.actions;

2. 修正组件中dispatch的调用写法

同步action不需要在dispatch中包裹一层箭头函数,直接传入action creator执行后的结果即可。
修改组件中的事件处理函数:

const changeVistaHandler = ()=>{
    // 原错误写法
    // dispatch(()=>cambiarVista(3))

    // 修正后写法
    dispatch(cambiarVista(3))
}

修改完成后触发事件即可正常修改store中的state值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:15:03