react-native-gesture-handler 在移动完成后不更新值
react-native-gesture-handler is not updating value after movement finish
我正在使用带有 react-native-reanimated 的 react-native-gesture-handler。移动完成后,我正在尝试更新一些不起作用的值。这是代码:
<PanGestureHandler onGestureEvent={Animated.event([{
nativeEvent: ({ translationX: x, translationY: y, state }) =>
block([
set(this.touchY, y),
cond(eq(state, State.END), [
set(this.height, add(this.height, y)),
set(this.translateY, add(this.translateY, y)),
set(this.touchY, new Value(0))
]
)
])
}])}
>
这是因为 onGestureEvent
不会在状态结束时触发。您要查找的是 onHandlerStateChange
。这是我前段时间写的一个组件的复制粘贴。
<PanGestureHandler onGestureEvent={gestureHandler} onHandlerStateChange={gestureHandler}>
如果你需要在状态结束时只处理那个事件我建议简单地使用
onHandlerStateChange
。否则,将 Animated.event(...)
提取到一个单独的常量并将其传递给 onGestureEvent
和 onHandlerStateChange
.
是个好主意
我正在使用带有 react-native-reanimated 的 react-native-gesture-handler。移动完成后,我正在尝试更新一些不起作用的值。这是代码:
<PanGestureHandler onGestureEvent={Animated.event([{
nativeEvent: ({ translationX: x, translationY: y, state }) =>
block([
set(this.touchY, y),
cond(eq(state, State.END), [
set(this.height, add(this.height, y)),
set(this.translateY, add(this.translateY, y)),
set(this.touchY, new Value(0))
]
)
])
}])}
>
这是因为 onGestureEvent
不会在状态结束时触发。您要查找的是 onHandlerStateChange
。这是我前段时间写的一个组件的复制粘贴。
<PanGestureHandler onGestureEvent={gestureHandler} onHandlerStateChange={gestureHandler}>
如果你需要在状态结束时只处理那个事件我建议简单地使用
onHandlerStateChange
。否则,将 Animated.event(...)
提取到一个单独的常量并将其传递给 onGestureEvent
和 onHandlerStateChange
.