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

React封装组件无法添加ref,需配置何种TypeScript类型消除报错?

解决React Wrapper组件无法添加ref的TypeScript类型问题

要让你的Wrapper组件支持ref属性,需要改用forwardRef创建组件,并调整对应的TypeScript类型,具体修改如下:

import { forwardRef, HTMLAttributes } from "react";

const Wrapper = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(
  ({ children, className, ...props }, ref) => (
    <div 
      ref={ref} 
      className={`h-[90vh] ${className || ""}`} 
      {...props}
    >
      {children}
    </div>
  )
);

export default Wrapper;

关键说明:

  • 原代码使用的FC(FunctionComponent)类型不包含ref属性定义,因此无法直接接收ref参数,必须用forwardRef创建支持ref传递的组件。
  • forwardRef的两个泛型参数:
    • 第一个参数HTMLDivElement指定了ref绑定的内部DOM元素类型(对应组件内的div);
    • 第二个参数HTMLAttributes<HTMLDivElement>保留了原组件的props类型,确保可以正常传递div的原生属性。
  • 组件函数会额外接收ref参数,需要将其绑定到内部的div元素上,这样外部传入的ref就能指向这个div。

修改后,你就可以正常给Wrapper组件添加ref属性,TypeScript不会再触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:37:24