From f97471c5dbfff339a43b170d9972c1ea135c780c Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Fri, 21 Jun 2019 19:00:40 +0100 Subject: [PATCH] [Flare] Guard against stateNode being null --- .../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 a6b8706f494c..1cd7a684a820 100644 --- a/packages/react-dom/src/events/DOMEventResponderSystem.js +++ b/packages/react-dom/src/events/DOMEventResponderSystem.js @@ -219,11 +219,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; @@ -241,16 +242,17 @@ const eventResponderContext: ReactDOMResponderContext = { const currentFiber = ((currentInstance: any): ReactEventComponentInstance) .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; }