我在我的组件中有一个简单的循环动画,就像这样:
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(),但是注意到控制台仍在打印运行动画。我应该调用不同的停止方法来阻止启动回调函数吗?