From 69b6869a3e6861b325ca2e9bb2d938cb81c7a090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Markb=C3=A5ge?= Date: Sat, 23 Apr 2016 13:10:00 -0700 Subject: [PATCH] Ignore events fired on missing React Native instances This can happen if something gets unmounted before the event gets dispatched. I'm not sure how this works out exactly but this preserves previous behavior in this scenario. --- src/renderers/native/ReactNative/ReactNativeEventEmitter.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/renderers/native/ReactNative/ReactNativeEventEmitter.js b/src/renderers/native/ReactNative/ReactNativeEventEmitter.js index add29ce39d..bf7179c2ae 100644 --- a/src/renderers/native/ReactNative/ReactNativeEventEmitter.js +++ b/src/renderers/native/ReactNative/ReactNativeEventEmitter.js @@ -120,6 +120,11 @@ var ReactNativeEventEmitter = merge(ReactEventEmitterMixin, { ) { var nativeEvent = nativeEventParam || EMPTY_NATIVE_EVENT; var inst = ReactNativeComponentTree.getInstanceFromNode(rootNodeID); + if (!inst) { + // If the original instance is already gone, we don't have to dispatch + // any events. + return; + } ReactUpdates.batchedUpdates(function() { ReactNativeEventEmitter.handleTopLevel( topLevelType,