web-dev-qa-db-fra.com

Réaction natif animé, événement complet

Quelle est la meilleure pratique pour déclencher un événement à la fin de Animated.spring?

Animated.spring(this.state.pan, {
    toValue: 0
}).start()

J'ai cherché pas mal de choses et je n'ai trouvé aucun moyen de le faire. Je pourrais utiliser addListener pour vérifier si l'animation a atteint sa valeur finale ou un délai d'attente, mais ils se sentent tous deux comme des correctifs laids à ce qui devrait être super simple. 

Est-ce que quelqu'un sait?

59
August Bjornberg

Une demi-heure de recherches sur Google plus tard et j'ai trouvé cela, je ne peux pas croire qu'ils ne l'ont pas documenté mieux.

https://github.com/facebook/react-native/issues/3212

.start(callback)
182
August Bjornberg

Cela sera renvoyé au début de l'animation

.start(console.log("Start Animation")

En utilisant une fonction de flèche ou une fonction, done sera appelé auENDde l'animation

.start(() => {console.log("Animation DONE")})

Et finalement, voici à quoi cela ressemble dans le contexte d’une fonction.

_play(){
  Animated.timing(this.state.progress, {
     toValue: 1,
     duration: 5000,
     easing: Easing.linear,
   }).start(() => {console.log("Animation DONE")});
}

J'espère que cela pourra aider!

0
Sabba Keynejad