From 32fc04edd35edb9039e3f3166401756d0f4165f8 Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Mon, 12 Oct 2020 13:32:16 -0700 Subject: [PATCH] Add missing bind methods for gesture responder. Somehow the context is getting dropped *some of the time*, so that `this` becomes undefined inside `onResponderGrant`. Binding the methods to the instance fixes the issue. It's unclear how it's only happening some of the time -- usually binding issues will become immediate apparent with React -- so my best guess is there's some detail inside the React Native system where the context can be dropped. --- src/libraries/ViewTransformer/index.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libraries/ViewTransformer/index.js b/src/libraries/ViewTransformer/index.js index f919e99..8eee8cb 100644 --- a/src/libraries/ViewTransformer/index.js +++ b/src/libraries/ViewTransformer/index.js @@ -100,10 +100,10 @@ export default class ViewTransformer extends React.Component { onStartShouldSetResponder: (evt, gestureState) => true, onMoveShouldSetResponderCapture: (evt, gestureState) => true, // onMoveShouldSetResponder: this.handleMove, - onResponderMove: this.onResponderMove, - onResponderGrant: this.onResponderGrant, - onResponderRelease: this.onResponderRelease, - onResponderTerminate: this.onResponderRelease, + onResponderMove: this.onResponderMove.bind(this), + onResponderGrant: this.onResponderGrant.bind(this), + onResponderRelease: this.onResponderRelease.bind(this), + onResponderTerminate: this.onResponderRelease.bind(this), onResponderTerminationRequest: (evt, gestureState) => false, // Do not allow parent view to intercept gesture onResponderSingleTapConfirmed: (evt, gestureState) => { this.props.onSingleTapConfirmed && this.props.onSingleTapConfirmed();