Skip to content

Commit b2382a7

Browse files
authored
Add ReactDOM.unstable_renderSubtreeIntoContainer warning flag (#17936)
1 parent 01974a8 commit b2382a7

9 files changed

+26
-9
lines changed

packages/react-dom/src/__tests__/renderSubtreeIntoContainer-test.js

+12-8
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,18 @@ if (ReactFeatureFlags.disableUnstableRenderSubtreeIntoContainer) {
5656
}
5757

5858
componentDidMount() {
59-
expect(
60-
function() {
61-
renderSubtreeIntoContainer(this, <Component />, portal);
62-
}.bind(this),
63-
).toWarnDev(
64-
'ReactDOM.unstable_renderSubtreeIntoContainer() is deprecated and ' +
65-
'will be removed in a future major release. Consider using React Portals instead.',
66-
);
59+
if (ReactFeatureFlags.warnUnstableRenderSubtreeIntoContainer) {
60+
expect(
61+
function() {
62+
renderSubtreeIntoContainer(this, <Component />, portal);
63+
}.bind(this),
64+
).toWarnDev(
65+
'ReactDOM.unstable_renderSubtreeIntoContainer() is deprecated and ' +
66+
'will be removed in a future major release. Consider using React Portals instead.',
67+
);
68+
} else {
69+
renderSubtreeIntoContainer(this, <Component />, portal);
70+
}
6771
}
6872
}
6973

packages/react-dom/src/client/ReactDOM.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ import {
5757
exposeConcurrentModeAPIs,
5858
disableUnstableCreatePortal,
5959
disableUnstableRenderSubtreeIntoContainer,
60+
warnUnstableRenderSubtreeIntoContainer,
6061
} from 'shared/ReactFeatureFlags';
6162

6263
import {
@@ -179,7 +180,10 @@ if (exposeConcurrentModeAPIs) {
179180
if (!disableUnstableRenderSubtreeIntoContainer) {
180181
ReactDOM.unstable_renderSubtreeIntoContainer = function(...args) {
181182
if (__DEV__) {
182-
if (!didWarnAboutUnstableRenderSubtreeIntoContainer) {
183+
if (
184+
warnUnstableRenderSubtreeIntoContainer &&
185+
!didWarnAboutUnstableRenderSubtreeIntoContainer
186+
) {
183187
didWarnAboutUnstableRenderSubtreeIntoContainer = true;
184188
console.warn(
185189
'ReactDOM.unstable_renderSubtreeIntoContainer() is deprecated ' +

packages/shared/ReactFeatureFlags.js

+2
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ export const disableTextareaChildren = false;
111111

112112
// Disables ReactDOM.unstable_renderSubtreeIntoContainer
113113
export const disableUnstableRenderSubtreeIntoContainer = false;
114+
// We should remove this flag once the above flag becomes enabled
115+
export const warnUnstableRenderSubtreeIntoContainer = false;
114116

115117
// Disables ReactDOM.unstable_createPortal
116118
export const disableUnstableCreatePortal = false;

packages/shared/forks/ReactFeatureFlags.native-fb.js

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export const enableTrustedTypesIntegration = false;
4848
export const disableCreateFactory = false;
4949
export const disableTextareaChildren = false;
5050
export const disableUnstableRenderSubtreeIntoContainer = false;
51+
export const warnUnstableRenderSubtreeIntoContainer = false;
5152
export const disableUnstableCreatePortal = false;
5253

5354
// Only used in www builds.

packages/shared/forks/ReactFeatureFlags.native-oss.js

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false;
4343
export const disableCreateFactory = false;
4444
export const disableTextareaChildren = false;
4545
export const disableUnstableRenderSubtreeIntoContainer = false;
46+
export const warnUnstableRenderSubtreeIntoContainer = false;
4647
export const disableUnstableCreatePortal = false;
4748

4849
// Only used in www builds.

packages/shared/forks/ReactFeatureFlags.persistent.js

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false;
4343
export const disableCreateFactory = false;
4444
export const disableTextareaChildren = false;
4545
export const disableUnstableRenderSubtreeIntoContainer = false;
46+
export const warnUnstableRenderSubtreeIntoContainer = false;
4647
export const disableUnstableCreatePortal = false;
4748

4849
// Only used in www builds.

packages/shared/forks/ReactFeatureFlags.test-renderer.js

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false;
4343
export const disableCreateFactory = false;
4444
export const disableTextareaChildren = false;
4545
export const disableUnstableRenderSubtreeIntoContainer = false;
46+
export const warnUnstableRenderSubtreeIntoContainer = false;
4647
export const disableUnstableCreatePortal = false;
4748

4849
// Only used in www builds.

packages/shared/forks/ReactFeatureFlags.test-renderer.www.js

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export const enableNativeTargetAsInstance = false;
4141
export const disableCreateFactory = false;
4242
export const disableTextareaChildren = false;
4343
export const disableUnstableRenderSubtreeIntoContainer = false;
44+
export const warnUnstableRenderSubtreeIntoContainer = false;
4445
export const disableUnstableCreatePortal = false;
4546

4647
// Only used in www builds.

packages/shared/forks/ReactFeatureFlags.www.js

+2
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ export const disableTextareaChildren = false;
9797

9898
export const disableUnstableRenderSubtreeIntoContainer = false;
9999

100+
export const warnUnstableRenderSubtreeIntoContainer = false;
101+
100102
export const disableUnstableCreatePortal = false;
101103

102104
// Flow magic to verify the exports of this file match the original version.

0 commit comments

Comments
 (0)