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

React onClick绑定报错:期望函数类型,实际得到对象类型

React onClick绑定函数报错解决

错误原因

你在按钮的onClick属性中写了handleCountry(),这会在组件渲染时立即执行函数,并把函数返回的数组(对象类型)传给onClick,但React要求onClick必须接收一个函数引用,所以触发了类型错误。

修复步骤

  1. 修正onClick绑定方式
    把onClick={handleCountry()}改为onClick={handleCountry},这样传递的是函数本身,只有点击按钮时才会执行:
<button className={styles.button} onClick={handleCountry}>
  Country
</button>
  1. 优化函数逻辑(避免数组重复累积)
    原代码中arr是全局变量,每次点击按钮都会往里面追加数据,导致数组越来越大。建议把arr移到函数内部,同时用forEach替代map(因为你只是遍历push,不需要返回新数组):
const handleCountry = () => {
  let arr = [];
  for (let i = 0; i < context.gameAdData.length; i++) {
    context.gameAdData[i].forEach((element) => {
      arr.push(element._fieldsProto.Country?.stringValue);
    });
  }
  // 这里可以添加对arr的后续处理,比如更新组件state
  console.log('处理后的国家数组:', arr);
};

额外说明

如果需要给函数传递参数,可以用箭头函数包裹:

<button onClick={() => handleCountry(自定义参数)}>Country</button>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:09:32