diff --git a/Libraries/Components/Touchable/Touchable.js b/Libraries/Components/Touchable/Touchable.js index 72f7e4c35033f5..03aeeb9261b444 100644 --- a/Libraries/Components/Touchable/Touchable.js +++ b/Libraries/Components/Touchable/Touchable.js @@ -484,6 +484,7 @@ const TouchableMixin = { * Place as callback for a DOM element's `onResponderRelease` event. */ touchableHandleResponderRelease: function(e: PressEvent) { + this.pressInLocation = null; this._receiveSignal(Signals.RESPONDER_RELEASE, e); }, @@ -491,6 +492,7 @@ const TouchableMixin = { * Place as callback for a DOM element's `onResponderTerminate` event. */ touchableHandleResponderTerminate: function(e: PressEvent) { + this.pressInLocation = null; this._receiveSignal(Signals.RESPONDER_TERMINATED, e); }, @@ -558,9 +560,13 @@ const TouchableMixin = { dimensionsOnActivate.height + pressExpandBottom; if (isTouchWithinActive) { + const prevState = this.state.touchable.touchState; this._receiveSignal(Signals.ENTER_PRESS_RECT, e); const curState = this.state.touchable.touchState; - if (curState === States.RESPONDER_INACTIVE_PRESS_IN) { + if ( + curState === States.RESPONDER_INACTIVE_PRESS_IN && + prevState !== States.RESPONDER_INACTIVE_PRESS_IN + ) { // fix for t7967420 this._cancelLongPressDelayTimeout(); }