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

react-redux中mapDispatchToProps不生效,this.props.getCategories不是函数

问题1:App.js中导入了错误的Categories组件版本

你的Categories组件存在两个导出:

  • 具名导出:export class Categories,是未经redux connect处理的原始组件,不会自动注入action到props
  • 默认导出:export default connect(...),是经过connect绑定了state和action的组件,props中会存在getCategories方法
    你在App.js中用了大括号导入具名版本:import {Categories} from './Categories',这是错误的根源。

修复方法

修改App.js中的导入语句,去掉大括号,导入默认导出的版本:

// 修改前
// import {Categories} from './Categories';
// 修改后
import Categories from './Categories';

问题2:webpack导入警告排查

如果修改完组件导入后还存在警告,检查../actions/categories相关导入逻辑:
你当前的getCategories是具名导出:export const getCategories = () => ...,对应的导入写法import {getCategories} from '../actions/categories'是完全正确的。如果出现该警告,排查两个点:

  • 确认action文件的文件名拼写正确,路径无误
  • 确认你没有在组件中写过import getCategories from '../actions/categories'这种错误的默认导入写法

验证修复效果

修改完成后重启开发服务,此时调用this.props.getCategories()不会再报类型错误,action会正常触发请求,reducer拿到数据后会更新store中的categories数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:21:01