react在ts中提示ref问题

2022-08-21 13:57:48 浏览数 (1)

首先按照官方文档的demo写好代码,却报错如下:

安装插件Error Lens后:

如何解决?

前往Textref源码,可以看到是需要一个叫LegacyRef的类型

我们进LegacyRef,看到其就是Refstring的类型

因此这里我们定义为Ref类型即可

这里出现了新的问题,不能将MutableRefObject<Text | null |undefined>分配给Ref<Text>

我们进入useRef源码,看到其包含几个重载

分别查看MuteableRefObjectRefObject

可以看到RefObjectRef中容许的其中一种类型

所以应该使用上面一种重载

在原有代码React.useRef()中传入null

报错解决

同理,trRef一样

注意此处Ref<TextRef>内的泛型使用的是konva/lib/shapes/Text包下的Text,改名为TextRef

除了在定义变量左侧申明类型,在方法右侧也可以申明泛型,让编辑器自动推测

0 人点赞