React native OnTestureEvent如何与React Native中的动画一起工作?

React native OnTestureEvent如何与React Native中的动画一起工作?,react-native,animation,gesture,React Native,Animation,Gesture,通过本教程,我正在学习Youtube上react native中的动画和react native手势处理程序: 问题是我很难理解这些代码,当用户拖动红色框时,它会水平移动它 类AnimApp扩展组件{ 构造函数(){ this.translateX=新的动画.Value(0); this.onGestureEvent=Animated.event([ { nativeEvent:{ translationX:this.translateX, }, }, ]); } render(){ 返回(

通过本教程,我正在学习Youtube上react native中的动画和react native手势处理程序:

问题是我很难理解这些代码,当用户拖动红色框时,它会水平移动它

类AnimApp扩展组件{
构造函数(){
this.translateX=新的动画.Value(0);
this.onGestureEvent=Animated.event([
{
nativeEvent:{
translationX:this.translateX,
},
},
]);
}
render(){
返回(
);
}
}
导出默认应用程序;

我知道在转换部分,
translateX
属性正在使用
this.translateX
移动视图,但我不知道
this.translateX
如何有它的值。我看不到有任何值分配给
this.translateX
。我有
console.log(this.translateX)
并且它的值在拖动时会改变,只是不知道流程是如何的。

您可以从手势中提取本机事件并将其指定给动画值

在这种情况下,该值来自
PanGestureHandler

this.onGestureEvent = Animated.event([
      {
        nativeEvent: {
          translationX: this.translateX,
        },
      },
    ]);

此OnGetureEvent将事件对象传递给动画值,我们从中提取事件值。我正在为其他人添加链接

这就是我的理解:This.translateX被分配给translationX,因此,这个.translateX的值仍然是0,因为它不是从任何地方分配的。请尝试控制台事件并观察其结构。我认为translationX被分配给了这个.translateX,它确实是一个奇怪的结构。是否可以在这个OnTestureFunction中添加某种检查?请看这个