如何调用redux-thunk的dispatch,解决useDispatch调用时报dispatch不是函数的错误
问题解决方法
你的错误核心是useDispatch Hook的导入来源错误:
useDispatch是react-redux提供的能力,不是React内置的Hook,你当前代码从react包导入该API,导致获取到的不是真正的dispatch方法,调用时就会抛出TypeError: dispatch is not a function报错。
具体修改步骤
- 修改
Comments.js文件的导入语句:
原代码:
import React, { useEffect, useDispatch } from "react";
修改为:
import React, { useEffect } from "react"; import { useDispatch } from "react-redux";
- 可选检查项:确认你的
react-redux版本不低于7.1.0,该版本才正式支持useSelector、useDispatch这类Redux Hooks API,如果版本过低可以执行命令升级:npm install react-redux@latest
或者yarn add react-redux@latest - 额外确认:你定义的
fetchCommentSuccess、fetchCommentFailure两个action已经在对应文件中声明导出,不会出现未定义的报错。
修改完成后重新运行项目即可正常触发异步action。
内容的提问来源于stack exchange,提问作者Jay0813
相关产品推荐
相关产品推荐

