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

React报错TypeError: handleChange is not a function排查

问题诊断

你判断错误位置的思路不对:handleSubmit里的日志没打印,不是因为错误出现在两个console.log语句之间。报错触发时机是你在输入框打字的瞬间,由输入框的onChange回调抛出,这时候你还没点击Confirm按钮,handleSubmit根本没执行,里面的日志自然不会输出。

核心bug出在Context的调用语法上,你写的这行代码完全不符合useContext的调用规则:

const {formData, handleChange, sendTransaction} = 
useContext; {TransactionContext}

这段代码的实际执行逻辑是:

  1. 把useContext这个hook本身当成值,解构赋值给formData/handleChange/sendTransaction三个变量,这三个变量实际全是undefined
  2. 后面的{TransactionContext}是一个独立的空代码块,根本没有作为参数传入useContext,等于你完全没从Context里读取任何值。

这种情况下你在onChange里调用handleChange,实际就是在调用undefined(),自然会抛出「handleChange is not a function」的错误。
另外你贴的代码片段最开头多了一个多余的},运行时也会触发语法错误,记得一并删除。

修复方案

把错误的Context调用代码替换为正确写法即可:

const { formData, handleChange, sendTransaction } = useContext(TransactionContext);

改完后就能正常从TransactionContext中读取到对应的状态和方法,输入、提交逻辑都能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:18:20