From 0f09f14ae60cfca996c15fc50eeb59447c19a7be Mon Sep 17 00:00:00 2001 From: Andrew Clark Date: Sat, 10 Jul 2021 18:02:00 -0400 Subject: [PATCH] Check if already rendering before flushing Forgot to stage this before committing 54e88ed12 I don't think is currently observable but should include the guard to protect against regressions (though this whole block will be deleted along with legacy mode, anyway). --- packages/react-reconciler/src/ReactFiberWorkLoop.new.js | 3 ++- packages/react-reconciler/src/ReactFiberWorkLoop.old.js | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/react-reconciler/src/ReactFiberWorkLoop.new.js b/packages/react-reconciler/src/ReactFiberWorkLoop.new.js index b6f697edfee38..bb855370faec2 100644 --- a/packages/react-reconciler/src/ReactFiberWorkLoop.new.js +++ b/packages/react-reconciler/src/ReactFiberWorkLoop.new.js @@ -1086,7 +1086,8 @@ export function flushSyncWithoutWarningIfAlreadyRendering( // next event, not at the end of the previous one. if ( rootWithPendingPassiveEffects !== null && - rootWithPendingPassiveEffects.tag === LegacyRoot + rootWithPendingPassiveEffects.tag === LegacyRoot && + (executionContext & (RenderContext | CommitContext)) === NoContext ) { flushPassiveEffects(); } diff --git a/packages/react-reconciler/src/ReactFiberWorkLoop.old.js b/packages/react-reconciler/src/ReactFiberWorkLoop.old.js index 22c8395cb0988..a7b020726e713 100644 --- a/packages/react-reconciler/src/ReactFiberWorkLoop.old.js +++ b/packages/react-reconciler/src/ReactFiberWorkLoop.old.js @@ -1086,7 +1086,8 @@ export function flushSyncWithoutWarningIfAlreadyRendering( // next event, not at the end of the previous one. if ( rootWithPendingPassiveEffects !== null && - rootWithPendingPassiveEffects.tag === LegacyRoot + rootWithPendingPassiveEffects.tag === LegacyRoot && + (executionContext & (RenderContext | CommitContext)) === NoContext ) { flushPassiveEffects(); }