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
相关产品推荐
相关产品推荐

