0

我正在使用 react-native-gesture-handler 和 react-native-reanimated。移动完成后,我正在尝试更新一些不起作用的值。这是代码:

            <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))
                          ]
                        )
                    ])
                }])}
             >
4

1 回答 1

1

这是因为onGestureEvent状态结束时不会触发。您正在寻找的是onHandlerStateChange. 这是从我不久前编写的组件中复制粘贴的。

<PanGestureHandler onGestureEvent={gestureHandler} onHandlerStateChange={gestureHandler}>

如果您需要在状态结束时处理该事件,我建议您简单地使用 onHandlerStateChange. 否则,将其提取Animated.event(...)到单独的常量并将其传递给onGestureEventand是一个好主意onHandlerStateChange

于 2020-06-24T16:47:12.743 回答