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

React CRUD应用报错`this.props.onAdd is not a function`原因排查

问题分析与解决

嘿,我一眼就找到问题所在了!

你在AddProduct组件里调用this.props.onAdd时触发错误,核心原因是:父组件App在渲染AddProduct的时候,没有把自己定义的onAdd方法作为props传递给它。这就导致AddProduct的props里根本不存在onAdd这个属性,调用的时候自然会抛出“不是函数”的错误。

修复步骤

只需要修改App.js里的render部分,把原来的<AddProduct />改成下面这样,把onAdd方法传递过去:

<AddProduct onAdd={this.onAdd} />

这样AddProduct就能拿到正确的方法,点击Add按钮时就能正常执行添加逻辑了。

额外小提示(可选优化)

你现在用ref来获取输入框的值,其实React更推荐使用受控组件的方式(通过state绑定输入框的值),不过这属于进阶优化项,先解决当前的报错问题优先~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:23:31