首页 > 解决方案 > React Native/Typescript/Eslint 错误:类型“void”不可分配给类型“CompositeAnimation”

问题描述

我是打字稿的新手。linter 已经能够为我快速修复,但以下代码部分没有提供可用于 linter 修复的快速操作:

问题消息是“类型 'void' 不可分配给类型 'CompositeAnimation'.ts(2322)”

Animated.parallel([
     Animated.spring(this.position, {
         toValue: ({ x: 0, y: 0 }),
     }).start(),
     Animated.spring(this.swipeCardPosition, {
         toValue: ({ x: 0, y: -SCREEN_HEIGHT }),
     }).start(),
]).start();

标签: typescriptreact-nativeanimation

解决方案


我认为问题在于 Animated.parallel() 方法接受复合动画对象的数组。Animate.spring() 返回一个复合动画对象,但是您在这两个动画上调用 start() 方法,它的返回类型为 void。

尝试以下代码,我认为它应该相应地工作:

Animated.parallel([
 Animated.spring(this.position, {
     toValue: ({ x: 0, y: 0 }),
 }),
 Animated.spring(this.swipeCardPosition, {
     toValue: ({ x: 0, y: -SCREEN_HEIGHT }),
 }),
]).start();

请注意,我没有启动弹簧动画,我只是启动了包含两个弹簧动画的“根”动画。

我希望它会帮助你。


推荐阅读