我想弄清楚Animated.spring事件何时完成,所以我可以更新一些状态。
我试过这个,但是在这里完成了一个未定义的错误;
Animated.spring(
this.state.pan,
{ toValue: { x: 0, y: -500 } }
).start().finish(
this.setState({
carousel: false, hasNotification: false
})
);
处理此事的其他任何方法?
由于
答案 0 :(得分:0)
start将执行完成回调,该回调将在动画完成时调用。如果动画完成正常运行完成后,将使用{finished:true}调用完成回调,但是如果动画完成,因为在它完成之前调用了stop(例如因为它被手势或另一个动画),然后它会收到{finished:false}。
所以我认为这应该有效:
Animated.spring(this.state.pan, { toValue: { x: 0, y: -500 } }).start(()=>{
this.setState({
carousel: false, hasNotification: false
})
});
答案 1 :(得分:0)
您可以传递可选的回调:
Animated.spring(
this.state.pan,
{ toValue: { x: 0, y: -500 } }
).start(this.stopAnimation.bind(this))
stopAnimation()
{
this.setState({
carousel: false, hasNotification: false
})
}