Skip to content

Commit 28625c6

Browse files
author
Brian Vaughn
authored
Disable strict effects for legacy roots (again) (#21591)
1 parent d75105f commit 28625c6

File tree

4 files changed

+10
-10
lines changed

4 files changed

+10
-10
lines changed

packages/react-reconciler/src/ReactFiber.new.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,11 @@ export function createFiberFromTypeAndProps(
492492
break;
493493
case REACT_STRICT_MODE_TYPE:
494494
fiberTag = Mode;
495-
mode |= StrictLegacyMode | StrictEffectsMode;
495+
mode |= StrictLegacyMode;
496+
if (enableStrictEffects && (mode & ConcurrentMode) !== NoMode) {
497+
// Strict effects should never run on legacy roots
498+
mode |= StrictEffectsMode;
499+
}
496500
break;
497501
case REACT_PROFILER_TYPE:
498502
return createFiberFromProfiler(pendingProps, mode, lanes, key);

packages/react-reconciler/src/ReactFiber.old.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,11 @@ export function createFiberFromTypeAndProps(
492492
break;
493493
case REACT_STRICT_MODE_TYPE:
494494
fiberTag = Mode;
495-
mode |= StrictLegacyMode | StrictEffectsMode;
495+
mode |= StrictLegacyMode;
496+
if (enableStrictEffects && (mode & ConcurrentMode) !== NoMode) {
497+
// Strict effects should never run on legacy roots
498+
mode |= StrictEffectsMode;
499+
}
496500
break;
497501
case REACT_PROFILER_TYPE:
498502
return createFiberFromProfiler(pendingProps, mode, lanes, key);

packages/react-reconciler/src/ReactFiberClassComponent.new.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -923,7 +923,6 @@ function mountClassInstance(
923923
enableStrictEffects &&
924924
(workInProgress.mode & StrictEffectsMode) !== NoMode
925925
) {
926-
// Never double-invoke effects for legacy roots.
927926
fiberFlags |= MountLayoutDev;
928927
}
929928
workInProgress.flags |= fiberFlags;
@@ -1005,7 +1004,6 @@ function resumeMountClassInstance(
10051004
enableStrictEffects &&
10061005
(workInProgress.mode & StrictEffectsMode) !== NoMode
10071006
) {
1008-
// Never double-invoke effects for legacy roots.
10091007
fiberFlags |= MountLayoutDev;
10101008
}
10111009
workInProgress.flags |= fiberFlags;
@@ -1060,7 +1058,6 @@ function resumeMountClassInstance(
10601058
enableStrictEffects &&
10611059
(workInProgress.mode & StrictEffectsMode) !== NoMode
10621060
) {
1063-
// Never double-invoke effects for legacy roots.
10641061
fiberFlags |= MountLayoutDev;
10651062
}
10661063
workInProgress.flags |= fiberFlags;
@@ -1078,7 +1075,6 @@ function resumeMountClassInstance(
10781075
enableStrictEffects &&
10791076
(workInProgress.mode & StrictEffectsMode) !== NoMode
10801077
) {
1081-
// Never double-invoke effects for legacy roots.
10821078
fiberFlags |= MountLayoutDev;
10831079
}
10841080
workInProgress.flags |= fiberFlags;

packages/react-reconciler/src/ReactFiberClassComponent.old.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -923,7 +923,6 @@ function mountClassInstance(
923923
enableStrictEffects &&
924924
(workInProgress.mode & StrictEffectsMode) !== NoMode
925925
) {
926-
// Never double-invoke effects for legacy roots.
927926
fiberFlags |= MountLayoutDev;
928927
}
929928
workInProgress.flags |= fiberFlags;
@@ -1005,7 +1004,6 @@ function resumeMountClassInstance(
10051004
enableStrictEffects &&
10061005
(workInProgress.mode & StrictEffectsMode) !== NoMode
10071006
) {
1008-
// Never double-invoke effects for legacy roots.
10091007
fiberFlags |= MountLayoutDev;
10101008
}
10111009
workInProgress.flags |= fiberFlags;
@@ -1060,7 +1058,6 @@ function resumeMountClassInstance(
10601058
enableStrictEffects &&
10611059
(workInProgress.mode & StrictEffectsMode) !== NoMode
10621060
) {
1063-
// Never double-invoke effects for legacy roots.
10641061
fiberFlags |= MountLayoutDev;
10651062
}
10661063
workInProgress.flags |= fiberFlags;
@@ -1078,7 +1075,6 @@ function resumeMountClassInstance(
10781075
enableStrictEffects &&
10791076
(workInProgress.mode & StrictEffectsMode) !== NoMode
10801077
) {
1081-
// Never double-invoke effects for legacy roots.
10821078
fiberFlags |= MountLayoutDev;
10831079
}
10841080
workInProgress.flags |= fiberFlags;

0 commit comments

Comments
 (0)