From e7163a9c2fd64e67f8caadd58033b109ce06d748 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Fri, 17 Apr 2020 23:58:40 +0100 Subject: [PATCH] Revise isFiberInsideHiddenOrRemovedTree (#18662) --- packages/react-reconciler/src/ReactFiberTreeReflection.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/react-reconciler/src/ReactFiberTreeReflection.js b/packages/react-reconciler/src/ReactFiberTreeReflection.js index 2dddc86dc3..a6a4b454e8 100644 --- a/packages/react-reconciler/src/ReactFiberTreeReflection.js +++ b/packages/react-reconciler/src/ReactFiberTreeReflection.js @@ -346,10 +346,15 @@ export function isFiberSuspenseAndTimedOut(fiber: Fiber): boolean { // It should not be used anywhere else. See PR #18609 for details. export function isFiberInsideHiddenOrRemovedTree(fiber: Fiber): boolean { let node = fiber; + let lastChild = null; while (node !== null) { - if (node.effectTag & Deletion || isFiberSuspenseAndTimedOut(node)) { + if ( + node.effectTag & Deletion || + (isFiberSuspenseAndTimedOut(node) && node.child === lastChild) + ) { return true; } + lastChild = node; node = node.return; } return false;