Skip to content

Commit 71c0f2a

Browse files
committed
[Fiber] Double invoke Effects in StrictMode after Fast Refresh
1 parent 5c118ed commit 71c0f2a

2 files changed

Lines changed: 4 additions & 3 deletions

File tree

packages/react-reconciler/src/ReactFiberBeginWork.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ import {
8888
NoFlags,
8989
PerformedWork,
9090
Placement,
91+
PlacementDEV,
9192
Hydrating,
9293
Callback,
9394
ContentReset,
@@ -3859,7 +3860,7 @@ function remountFiber(
38593860
deletions.push(current);
38603861
}
38613862

3862-
newWorkInProgress.flags |= Placement;
3863+
newWorkInProgress.flags |= Placement | PlacementDEV;
38633864

38643865
// Restart work from the new fiber.
38653866
return newWorkInProgress;

packages/react-refresh/src/__tests__/ReactFresh-test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2371,7 +2371,7 @@ describe('ReactFresh', () => {
23712371
});
23722372

23732373
expect(container.firstChild.style.color).toBe('red');
2374-
expect(log).toEqual(['unmount v1', 'mount v2']);
2374+
expect(log).toEqual(['unmount v1', 'mount v2', 'unmount v2', 'mount v2']);
23752375
}
23762376
});
23772377

@@ -2414,7 +2414,7 @@ describe('ReactFresh', () => {
24142414
});
24152415

24162416
expect(container.firstChild.style.color).toBe('red');
2417-
expect(log).toEqual(['mount v2']);
2417+
expect(log).toEqual(['mount v2', 'unmount v2', 'mount v2']);
24182418
}
24192419
});
24202420

0 commit comments

Comments
 (0)