diff --git a/React/Base/RCTTouchHandler.m b/React/Base/RCTTouchHandler.m index e9d2e20de..f164022e7 100644 --- a/React/Base/RCTTouchHandler.m +++ b/React/Base/RCTTouchHandler.m @@ -234,7 +234,6 @@ static BOOL RCTAnyTouchesChanged(NSSet *touches) { // If gesture just recognized, send all touches to JS as if they just began. if (self.state == UIGestureRecognizerStateBegan) { - _coalescingKey++; [self _updateAndDispatchTouches:_nativeTouches.set eventName:@"topTouchStart" originatingTime:0]; // We store this flag separately from `state` because after a gesture is @@ -253,6 +252,7 @@ static BOOL RCTAnyTouchesChanged(NSSet *touches) { [super touchesBegan:touches withEvent:event]; + _coalescingKey++; // "start" has to record new touches before extracting the event. // "end"/"cancel" needs to remove the touch *after* extracting the event. [self _recordNewTouches:touches]; @@ -278,6 +278,7 @@ static BOOL RCTAnyTouchesChanged(NSSet *touches) { [super touchesEnded:touches withEvent:event]; + _coalescingKey++; if (_dispatchedInitialTouches) { [self _updateAndDispatchTouches:touches eventName:@"touchEnd" originatingTime:event.timestamp];