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

Redux Thunk无法派发action,控制台提示dispatch不是函数,请问配置哪里出错?

问题根因

你在Redux中间件配置环节传入了错误的参数:applyMiddleware 接收的是Redux中间件实例,你错误传入了自己定义的thunk类型action creator fetch,导致Redux的dispatch链路被破坏,所以触发action时会提示dispatch is not a function。
注释中间件后普通同步action可以正常运行,是因为同步action不需要中间件处理,走Redux原生dispatch逻辑即可生效。

修复步骤
  1. 首先确保已安装redux-thunk依赖:
npm install redux-thunk
# 或 yarn add redux-thunk
  1. 修改store配置代码,导入thunk中间件替换原来传入的自定义fetch:
// 顶部导入thunk中间件
import thunk from 'redux-thunk'

const store = createStore(root,
  compose(
    applyMiddleware(thunk), 
    window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
  )
)
补充优化建议
  • 你自定义的异步action creator命名为fetch,和浏览器原生的fetch API重名,容易出现作用域冲突,建议改成fetchTodoData之类的语义化命名。
  • reducer中用到的ADD_DATA、INCREMENT_COUNT等action type常量,需要确保已提前定义并正确导入,否则action匹配逻辑会失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 08:54:06