Animated.spring完成活动

时间:2017-01-02 16:27:57

标签: react-native

我想弄清楚Animated.spring事件何时完成,所以我可以更新一些状态。

我试过这个,但是在这里完成了一个未定义的错误;

         Animated.spring(
            this.state.pan,
            { toValue: { x: 0, y: -500 } }
          ).start().finish(
            this.setState({
              carousel: false, hasNotification: false
            })
          );

处理此事的其他任何方法?

由于

2 个答案:

答案 0 :(得分:0)

根据documentation

  

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
  })
}