首页 > 解决方案 > Typescript Object 可能是在 react 中使用 ref 聚焦的“null”焦点

问题描述

打字稿仍然给我错误

对象可能是“空”.ts(2531)

即使我这样做

myRef && myRef.current && myRef.current.focus();

如果我使用

myRef?.current?.focus();

我有

Property 'focus' does not exist on type 'never'.ts(2339)

标签: javascriptreactjstypescriptecmascript-6

解决方案


定义引用时,应指定它将是什么类型:

const myRef = useRef<HTMLElement>(null);

(请注意,以上假设您正在使用它<div ref={myRef}>- 如果您myRef.current手动设置,则需要将类型指定为<HTMLElement|null>.

完成此操作后,您应该能够使用以下内容:

myRef.current?.focus()

请注意,您不需要使用存在检查myRef- 这将始终是具有current属性的对象 - 这就是 react 的 API 的工作方式。


推荐阅读