У меня есть простая анимация в захвате петли моего компонента, как это:Как остановить анимацию цикла в React Native?
runAnimation() {
console.log('run animation');
this.state.angle.setValue(0);
Animated.timing(this.state.angle, {
toValue: 360,
duration: 8000,
easing: Easing.linear
}).start(() => this.runAnimation());
}
...
<Animated.Image
style={[
styles.rotate,
{ transform: [
{ rotate: this.state.angle.interpolate({
inputRange: [0, 360],
outputRange: ['0deg', '360deg']
})},
]}
]}
source={require('./spinning_ball.png')}
/>
Как бы остановить эту анимацию? Например, при переходе на другой экран или после нажатия пользователем кнопки.
Я попытался с помощью this.state.angle.stopAnimation() но заметил запустить анимацию еще напечатанный в консоли. Есть ли другой метод остановки, который я должен вызывать, чтобы предотвратить запуск обратного вызова?
Оба решения работали, но это казалось намного более чистой реализацией. –
Хороший улов o.finished –