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(...) 提取到一个单独的常量并将其传递给 onGestureEventonHandlerStateChange.

是个好主意