Ошибка React Native / Typescript / Eslint: тип ‘void’ нельзя присвоить типу ‘CompositeAnimation’

#typescript #react-native #animation

#typescript #react-native #Анимация

Вопрос:

Я новичок в typescript. Линтер смог быстро исправить для меня, но следующий раздел кода не предлагает быстрых действий, доступных для исправления линтером:

Сообщение о проблеме «Тип ‘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();
  

Ответ №1:

Я думаю, проблема в том, что метод 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();
  

Обратите внимание, что я не запускал весеннюю анимацию, я просто запускаю анимацию «root», которая содержит две весенние анимации.

Я надеюсь, что это поможет вам.