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

在React+Typescript中如何将onClick函数作为props传递给子组件?

接口类型填写方案

你当前场景下的onClick是无参数、无返回值的函数,直接把类型定义为() => void即可:

export interface ChildComponentProps {
   onClick: () => void;
}

符合TS规范的可选优化点

  • 如果后续需要接收点击事件对象作为参数,可以使用React内置的事件类型,适配原生按钮的点击场景:
    export interface ChildComponentProps {
      onClick: React.MouseEventHandler<HTMLButtonElement>;
    }
    
    如果你没有用到事件对象的属性,用() => void的兼容性更强,父组件传递任意无返回值的点击处理函数都不会报错。
  • 如果子组件内不需要在触发父组件传入的onClick前执行额外逻辑,可以直接透传函数,不需要额外包裹一层箭头函数,写法更简洁:
    <ButtonComponent 
      onClick={onClick}
      ...
    />
    
  • 如果onClick属于可选传递的属性,可以在属性名后加?标记为可选,避免父组件不传时报错:
    export interface ChildComponentProps {
      onClick?: () => void;
    }
    
    可选属性调用时建议加可选链判断:onClick?.(),避免函数未定义时报运行时错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:06:06