在TypeScript中使用useRef和Input的时候,如何设置类型?

import { useRef } from 'react'
import { Input } from 'antd'

const ref = useRef<Input>()

我用上面的方式,不能把字符串赋为初始值,使用如下的方式

const ref = useRef<Input>('init')

请问该如何正确的设置类型和初始值呢?

阅读 15.9k
4 个回答
const ref = useRef<HTMLInputElement>(null)
新手上路,请多包涵

useRef初始值是Input引用的初始值,不是Input组件的value属性的初始值
非要使用可以 useRef<Input>(new Input({value: "init"})), 不过这样太奇怪了
如果提示Object is possible null/undefined, 可以先判断下 :
if (ref.current) { ref.current.focus() }
Typescript就不会报错了

不知道楼主还看得到不, 今天解决正好来答一下
antd@4.16

const ref = useRef<Input>(null)

亲测可用

import type { InputRef } from 'antd';

const ref = useRef<InputRef>(null);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题