1

我为圆形 svg 上的动画创建了一个参考:

const circleRef = useRef(null);

在 a 中useEffect,我有这行代码会产生错误:

circleRef.current!.setNativeProps({
  strokeDashoffset,
});

这是产生的错误消息:

Property 'setNativeProps' does not exist on type 'never'.

关于为什么会发生这种情况的任何想法?对我来说似乎是打字错误,但我可能是错的

4

1 回答 1

1

TypeScript 不知道将持有的 ref 的类型,circleRef因为没有给出类型参数并且初始值为null. 推断的类型是 then never

你可以简单地做:

// Change `View` to whatever the type of component is.
const circleRef = useRef<View>(null);

如果在此代码运行时碰巧未定义 ref,我还建议使用?运算符而不是运算符来防止崩溃:!

circleRef.current?.setNativeProps({ strokeDashoffset });
于 2020-10-10T22:49:40.990 回答