React Native - onTouchStart vs PanResponder,每秒进行多次触摸

Man*_*olo 10 javascript touch gesture react-native

我正在使用React Native开发一个应用程序,它必须尽快响应轻击手势,因为可以在一秒钟内触发多个轻击事件.无需双击或移动手势,但需要同时处理水龙头.我一直在测试既onTouchStartPanResponder | onPanResponderGrant和看到:

  • onTouchStart两个水龙头同时发射两次,而onPanResponderGrant只召唤一次.
  • onPanResponderMove被甚至被解雇时,我有onMoveShouldSetPanResponderfalse,并且它的发射很多时候两个水龙头是同时发生,或当有第二个几个水龙头.
  • 当在一秒内完成几次点击时,onTouchStart工作正常,但onPanResponderGrant发射次数较少.

基于以上原因,我认为我最好使用onTouchStart.

现在问题是:即使React Native文档建议使用多点触控手势,我是否应该使用?onTouchStartPanResponder

PanResponder将多个触摸协调为一个手势.它使单点触控手势能够适应额外的触摸,并可用于识别简单的多点触控手势.

或者我错过了什么PanResponder

编辑:

此外,gestureState.numberActiveTouches始终为1,两个水龙头同时发生的事件.我认为这可以解决问题.

Jer*_*mie 9

根据PanResponder的定义,我理解它用于解释多点触控手势并渲染1个动作.就像我在图像上用2个手指点击一样,我可以将图像复制到剪贴板.

虽然你似乎想要一个不同的行为:我用1个鼓钹上的2个手指点击,你想得到2个声音.这就好像你将你的鼓镲分成无限的按钮,无论你做什么,每一个水龙头,你都会得到一个单独的声音.

然后你不想使用PanResponder,因为它会尝试将一堆动作解释为单个声音,而你希望每个动作都能产生单独的声音.而onTouchStart只需完成工作.所以你可能正在用它做正确的事!