diff --git a/Libraries/Renderer/implementations/ReactFabric-dev.fb.js b/Libraries/Renderer/implementations/ReactFabric-dev.fb.js index 23f1d76c068..2414df073f9 100644 --- a/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +++ b/Libraries/Renderer/implementations/ReactFabric-dev.fb.js @@ -3828,7 +3828,11 @@ function dispatchEvent(target, topLevelType, nativeEvent) { if (enableNativeTargetAsInstance) { if (targetFiber != null) { - eventTarget = targetFiber.stateNode.canonical; + var stateNode = targetFiber.stateNode; // Guard against Fiber being unmounted + + if (stateNode != null) { + eventTarget = stateNode.canonical; + } } } else { eventTarget = nativeEvent.target; diff --git a/Libraries/Renderer/implementations/ReactFabric-dev.js b/Libraries/Renderer/implementations/ReactFabric-dev.js index 91e18999b9e..3c08d6152b9 100644 --- a/Libraries/Renderer/implementations/ReactFabric-dev.js +++ b/Libraries/Renderer/implementations/ReactFabric-dev.js @@ -3826,7 +3826,11 @@ function dispatchEvent(target, topLevelType, nativeEvent) { if (enableNativeTargetAsInstance) { if (targetFiber != null) { - eventTarget = targetFiber.stateNode.canonical; + var stateNode = targetFiber.stateNode; // Guard against Fiber being unmounted + + if (stateNode != null) { + eventTarget = stateNode.canonical; + } } } else { eventTarget = nativeEvent.target; diff --git a/Libraries/Renderer/implementations/ReactFabric-prod.fb.js b/Libraries/Renderer/implementations/ReactFabric-prod.fb.js index 40fe1374826..4d84a8cc658 100644 --- a/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +++ b/Libraries/Renderer/implementations/ReactFabric-prod.fb.js @@ -1467,9 +1467,12 @@ function batchedUpdates(fn, bookkeeping) { } function dispatchEvent(target, topLevelType, nativeEvent) { var eventTarget = null; - enableNativeTargetAsInstance - ? null != target && (eventTarget = target.stateNode.canonical) - : (eventTarget = nativeEvent.target); + if (enableNativeTargetAsInstance) { + if (null != target) { + var stateNode = target.stateNode; + null != stateNode && (eventTarget = stateNode.canonical); + } + } else eventTarget = nativeEvent.target; batchedUpdates(function() { var events = eventTarget; for (var events$jscomp$0 = null, i = 0; i < plugins.length; i++) { diff --git a/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js b/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js index 804b26e06cd..5cbd41b7417 100644 --- a/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +++ b/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js @@ -1468,9 +1468,12 @@ function batchedUpdates(fn, bookkeeping) { } function dispatchEvent(target, topLevelType, nativeEvent) { var eventTarget = null; - enableNativeTargetAsInstance - ? null != target && (eventTarget = target.stateNode.canonical) - : (eventTarget = nativeEvent.target); + if (enableNativeTargetAsInstance) { + if (null != target) { + var stateNode = target.stateNode; + null != stateNode && (eventTarget = stateNode.canonical); + } + } else eventTarget = nativeEvent.target; batchedUpdates(function() { var events = eventTarget; for (var events$jscomp$0 = null, i = 0; i < plugins.length; i++) {