diff --git a/packages/react-reconciler/src/ReactFiberCommitWork.new.js b/packages/react-reconciler/src/ReactFiberCommitWork.new.js index 3c7a8bbd19..3732c81ce6 100644 --- a/packages/react-reconciler/src/ReactFiberCommitWork.new.js +++ b/packages/react-reconciler/src/ReactFiberCommitWork.new.js @@ -879,8 +879,6 @@ function commitUnmount( if ((tag & HookPassive) !== NoHookEffect) { // TODO: Consider if we can move this block out of the synchronous commit phase effect.tag |= HookHasEffect; - - schedulePassiveEffectCallback(); } else { if ( enableProfilerTimer && diff --git a/packages/react-reconciler/src/ReactFiberWorkLoop.new.js b/packages/react-reconciler/src/ReactFiberWorkLoop.new.js index 90d5b5edd8..7e6845f19a 100644 --- a/packages/react-reconciler/src/ReactFiberWorkLoop.new.js +++ b/packages/react-reconciler/src/ReactFiberWorkLoop.new.js @@ -2183,7 +2183,10 @@ function commitRootImpl(root, renderPriorityLevel) { } // If there are pending passive effects, schedule a callback to process them. - if ((finishedWork.subtreeTag & PassiveSubtreeTag) !== NoSubtreeTag) { + if ( + (finishedWork.subtreeTag & PassiveSubtreeTag) !== NoSubtreeTag || + (finishedWork.effectTag & PassiveMask) !== NoEffect + ) { if (!rootDoesHavePassiveEffects) { rootDoesHavePassiveEffects = true; scheduleCallback(NormalSchedulerPriority, () => {