From 4aea7c3fade5f5dfc64f74efdd1e5888670d92f6 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Fri, 9 Jun 2017 16:10:40 -0700 Subject: [PATCH] RN Inspector guard against clicks outside of RN (#9911) --- .../native/ReactNativeFiberInspector.js | 16 +++++++++++++--- .../native/ReactNativeStackInspector.js | 11 +++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/renderers/native/ReactNativeFiberInspector.js b/src/renderers/native/ReactNativeFiberInspector.js index dbdeba0c05..bd9d73f00f 100644 --- a/src/renderers/native/ReactNativeFiberInspector.js +++ b/src/renderers/native/ReactNativeFiberInspector.js @@ -89,9 +89,19 @@ if (__DEV__) { }; getInspectorDataForViewTag = function(viewTag: number): Object { - const fiber = findCurrentFiberUsingSlowPath( - getClosestInstanceFromNode(viewTag), - ); + const closestInstance = getClosestInstanceFromNode(viewTag); + + // Handle case where user clicks outside of ReactNative + if (!closestInstance) { + return { + hierarchy: [], + props: emptyObject, + selection: null, + source: null, + }; + } + + const fiber = findCurrentFiberUsingSlowPath(closestInstance); const fiberHierarchy = getOwnerHierarchy(fiber); const instance = lastNonHostInstance(fiberHierarchy); const hierarchy = createHierarchy(fiberHierarchy); diff --git a/src/renderers/native/ReactNativeStackInspector.js b/src/renderers/native/ReactNativeStackInspector.js index 74df03b7cf..4143688d6a 100644 --- a/src/renderers/native/ReactNativeStackInspector.js +++ b/src/renderers/native/ReactNativeStackInspector.js @@ -67,6 +67,17 @@ if (__DEV__) { const component = ReactNativeComponentTree.getClosestInstanceFromNode( viewTag, ); + + // Handle case where user clicks outside of ReactNative + if (!component) { + return { + hierarchy: [], + props: emptyObject, + selection: null, + source: null, + }; + } + const componentHierarchy = getOwnerHierarchy(component); const instance = lastNotNativeInstance(componentHierarchy); const hierarchy = createHierarchy(componentHierarchy);