我有一个Animated.View
基于用户手指移动的简单方法,我的组件如下所示:
return (
<View
style={styles.container}
>
<PanGestureHandler
ref={this.panRef}
onGestureEvent={this.handlePan}
onHandlerStateChange={this.handlePan}
>
<Animated.View
style={[
styles.parent,
{
transform: [
{ translateX: this.X },
],
},
]}
>
<MyAwesomeComponent />
</Animated.View>
</PanGestureHandler>
</View>
问题是,我想创建一个名为scrollToPosition(position, animated)
现在看起来像这样:
scrollToPosition = (position, animated = false) => {
if (animated) {
// TODO: What to do now?
} else {
this.X.setValue(position);
}
}
,它可以在没有动画的情况下工作,但我现在的目标是添加一种方法,也可以通过 Ease 为值设置动画。
如果我们在 react-native Animated 世界,我们会做这样的事情:
Animated.spring(this.X, {
toValue: position,
}).start();
但是我该如何做同样的事情react-native-reanimated
。请不要浪费时间解释 UI vs JS 领域,我知道,我确实想利用在 UI 线程中运行动画,我只是不知道如何在用户之后以声明方式运行此动画 ie点击一个按钮。
谢谢