From a5ed2f98f97c137322138d48e90d3510e6d83b5a Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Fri, 21 Jun 2019 19:14:03 +0100 Subject: [PATCH] [Flare] Guard against stateNode being null (#15952) --- .../src/events/DOMEventResponderSystem.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/react-dom/src/events/DOMEventResponderSystem.js b/packages/react-dom/src/events/DOMEventResponderSystem.js index 9436f58573..0ba8b75265 100644 --- a/packages/react-dom/src/events/DOMEventResponderSystem.js +++ b/packages/react-dom/src/events/DOMEventResponderSystem.js @@ -217,11 +217,12 @@ const eventResponderContext: ReactDOMResponderContext = { .currentFiber; while (fiber !== null) { - if (fiber.tag === EventComponent) { + const stateNode = fiber.stateNode; + if (fiber.tag === EventComponent && stateNode !== null) { // Switch to the current fiber tree - fiber = fiber.stateNode.currentFiber; + fiber = stateNode.currentFiber; } - if (fiber === currentFiber || fiber.stateNode === currentInstance) { + if (fiber === currentFiber || stateNode === currentInstance) { return true; } fiber = fiber.return; @@ -239,16 +240,17 @@ const eventResponderContext: ReactDOMResponderContext = { const currentFiber = ((currentInstance: any): ReactDOMEventComponentInstance) .currentFiber; while (fiber !== null) { - if (fiber.tag === EventComponent) { + const stateNode = fiber.stateNode; + if (fiber.tag === EventComponent && stateNode !== null) { // Switch to the current fiber tree - fiber = fiber.stateNode.currentFiber; + fiber = stateNode.currentFiber; } - if (fiber === currentFiber || fiber.stateNode === currentInstance) { + if (fiber === currentFiber || stateNode === currentInstance) { return true; } if ( fiber.tag === EventComponent && - (fiber.stateNode === null || fiber.stateNode.responder === responder) + (stateNode === null || stateNode.responder === responder) ) { return false; }