dillon1000/react

Commit

allow nested `act()`s from different renderers (#16039)

* allow nested `act()`s from different renderers

There are usecases where multiple renderers need to oprate inside an act() scope
- ReactDOM.render being used inside another component tree. The parent component will be rendered using ReactTestRenderer.create for a snapshot test or something.
- a ReactDOM instance interacting with a ReactTestRenderer instance (like for the new devtools)

This PR changes the way the acting sigils operate to allow for this. It keeps 2 booleans, one attached to React, one attached to the renderer. act() changes these values, and the workloop reads them to decide what warning to trigger.

I also renamed shouldWarnUnactedUpdates to warnsIfNotActing

* s/ReactIsActing/IsSomeRendererActing and s/ReactRendererIsActing/IsThisRendererActing
Browse files
Changed paths18 files
First-parent comparison
M fixtures/dom/src/index.test.js ModifiedM packages/react-art/src/ReactARTHostConfig.js ModifiedM packages/react-dom/src/client/ReactDOM.js ModifiedM packages/react-dom/src/client/ReactDOMHostConfig.js ModifiedM packages/react-dom/src/fire/ReactFire.js ModifiedM packages/react-dom/src/test-utils/ReactTestUtils.js ModifiedM packages/react-dom/src/test-utils/ReactTestUtilsAct.js ModifiedM packages/react-native-renderer/src/ReactFabricHostConfig.js ModifiedM packages/react-native-renderer/src/ReactNativeHostConfig.js ModifiedM packages/react-noop-renderer/src/createReactNoop.js ModifiedM packages/react-reconciler/src/ReactFiberReconciler.js ModifiedM packages/react-reconciler/src/ReactFiberWorkLoop.js ModifiedM packages/react-reconciler/src/forks/ReactFiberHostConfig.custom.js ModifiedM packages/react-test-renderer/src/ReactTestHostConfig.js ModifiedM packages/react-test-renderer/src/ReactTestRendererAct.js ModifiedA packages/react/src/IsSomeRendererActing.js AddedD packages/react/src/ReactCurrentActingRendererSigil.js DeletedM packages/react/src/ReactSharedInternals.js Modified
Patch

Files changed

Rendering syntax-highlighted changes…