1

这是以下问题的小吃 - https://snack.expo.io/@noitidart/tapgesturehandler-ongestureevent

onGestureEventforTapGestureHandler永远不会触发吗?文档没有说明这一点。这似乎发生在我身上:

import Reanimated from 'react-native-reanimated';

const handleStateChange = () => console.log('state changed');
const handleGestureEvent = () => console.log('got gesture event');

<TapGestureHandler
  onHandlerStateChange={handleStateChange}
  onGestureEvent={handleGestureEvent}>
  <Reanimated.View
    style={{ width: 100, height: 100, backgroundColor: 'green' }}
  />
</TapGestureHandler>

您将在点击时看到它永远不会触发(“手势事件”)

4

1 回答 1

3

我也遇到了这个问题,手势处理程序中关于离散和连续手势的文档提到了它:

Keep in mind that onGestureEvent is only generated in continuous gesture handlers and shouldn't be used in the TapGestureHandler and other discrete handlers.

来源:https ://docs.swmansion.com/react-native-gesture-handler/docs/about-handlers

这非常令人困惑,因为在 Reanimated 中使用 TapGestureHandler 的示例似乎使用了 onGestureEvent,但我发现自己处理状态更改是可行的方法。好消息是,管理起来非常简单,因为它是一个独立的手势。

于 2021-03-16T22:50:53.487 回答