React native OnTestureEvent如何与React Native中的动画一起工作?
通过本教程,我正在学习Youtube上react native中的动画和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(){ 返回(
类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中添加某种检查?请看这个