老师,请问如何让组件支持 ref 属性?

来源:9-3 持续优化 - Input组件代码实现和优化过程

慕侠0187444

2020-07-07

图片描述
图片描述

写回答

2回答

张轩

2020-07-12

同学可以试一试 https://zh-hans.reactjs.org/docs/forwarding-refs.html 转发 ref,我简单试了一下,是没有问题的,你可以按它的步骤走就好啦。写了简单的伪代码 你可以看看欧

export const Input = forwardRef<HTMLInputElement, InputProps>((props, ref) => {
    return 
    <input
        ref={ref}
        className="viking-input-inner"
        disabled={disabled}
        {...restProps}
    />
})

// 使用
const DisabledInput = () => {
    const nodeRef = useRef<null | HTMLInputElement>(null)
    return (
        <Input
            placeholder="disabled input"
            ref={nodeRef}
            disabled 
        />
      )
}


1
1
慕侠0187444
[赞] 谢谢老师,原来react官网就有,之前没看到。
2020-07-13
共1条回复

香饽饽0

2020-07-07

这只是你编辑器监测 ts 报错,ref的类型和传入的类型不同,因为你还没有传值

0
1
慕侠0187444
我想让自己写的 Input 组件支持 ref 属性 并且绑定的 ref指向的 是 Input 组件里面的
2020-07-07
共1条回复

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2123 学习 · 959 问题

查看课程