Add ReactDOM.unstable_renderSubtreeIntoContainer warning flag (#17936)
Dominic Gannaway committed
Jan 30, 2020 at 11:56 UTC
b2382a71503595288a63050d1c71ff0be6650d6f
9 files changed
+26
-9
packages/react-dom/src/__tests__/renderSubtreeIntoContainer-test.js
+12
-8
@@ -56,14 +56,18 @@ if (ReactFeatureFlags.disableUnstableRenderSubtreeIntoContainer) {
56
}
57
58
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
+ }
71
}
72
}
73
packages/react-dom/src/client/ReactDOM.js
+5
-1
@@ -57,6 +57,7 @@ import {
57
exposeConcurrentModeAPIs,
58
disableUnstableCreatePortal,
59
disableUnstableRenderSubtreeIntoContainer,
60
+ warnUnstableRenderSubtreeIntoContainer,
61
} from 'shared/ReactFeatureFlags';
62
63
import {
@@ -179,7 +180,10 @@ if (exposeConcurrentModeAPIs) {
180
if (!disableUnstableRenderSubtreeIntoContainer) {
181
ReactDOM.unstable_renderSubtreeIntoContainer = function(...args) {
182
if (__DEV__) {
182
- if (!didWarnAboutUnstableRenderSubtreeIntoContainer) {
183
+ if (
184
+ warnUnstableRenderSubtreeIntoContainer &&
185
+ !didWarnAboutUnstableRenderSubtreeIntoContainer
186
+ ) {
187
didWarnAboutUnstableRenderSubtreeIntoContainer = true;
188
console.warn(
189
'ReactDOM.unstable_renderSubtreeIntoContainer() is deprecated ' +
packages/shared/ReactFeatureFlags.js
+2
@@ -111,6 +111,8 @@ export const disableTextareaChildren = false;
111
112
// Disables ReactDOM.unstable_renderSubtreeIntoContainer
113
export const disableUnstableRenderSubtreeIntoContainer = false;
114
+// We should remove this flag once the above flag becomes enabled
115
+export const warnUnstableRenderSubtreeIntoContainer = false;
116
117
// Disables ReactDOM.unstable_createPortal
118
export const disableUnstableCreatePortal = false;
packages/shared/forks/ReactFeatureFlags.native-fb.js
+1
@@ -48,6 +48,7 @@ export const enableTrustedTypesIntegration = false;
48
export const disableCreateFactory = false;
49
export const disableTextareaChildren = false;
50
export const disableUnstableRenderSubtreeIntoContainer = false;
51
+export const warnUnstableRenderSubtreeIntoContainer = false;
52
export const disableUnstableCreatePortal = false;
53
54
// Only used in www builds.
packages/shared/forks/ReactFeatureFlags.native-oss.js
+1
@@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false;
43
export const disableCreateFactory = false;
44
export const disableTextareaChildren = false;
45
export const disableUnstableRenderSubtreeIntoContainer = false;
46
+export const warnUnstableRenderSubtreeIntoContainer = false;
47
export const disableUnstableCreatePortal = false;
48
49
// Only used in www builds.
packages/shared/forks/ReactFeatureFlags.persistent.js
+1
@@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false;
43
export const disableCreateFactory = false;
44
export const disableTextareaChildren = false;
45
export const disableUnstableRenderSubtreeIntoContainer = false;
46
+export const warnUnstableRenderSubtreeIntoContainer = false;
47
export const disableUnstableCreatePortal = false;
48
49
// Only used in www builds.
packages/shared/forks/ReactFeatureFlags.test-renderer.js
+1
@@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false;
43
export const disableCreateFactory = false;
44
export const disableTextareaChildren = false;
45
export const disableUnstableRenderSubtreeIntoContainer = false;
46
+export const warnUnstableRenderSubtreeIntoContainer = false;
47
export const disableUnstableCreatePortal = false;
48
49
// Only used in www builds.
packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
+1
@@ -41,6 +41,7 @@ export const enableNativeTargetAsInstance = false;
41
export const disableCreateFactory = false;
42
export const disableTextareaChildren = false;
43
export const disableUnstableRenderSubtreeIntoContainer = false;
44
+export const warnUnstableRenderSubtreeIntoContainer = false;
45
export const disableUnstableCreatePortal = false;
46
47
// Only used in www builds.
packages/shared/forks/ReactFeatureFlags.www.js
+2
@@ -97,6 +97,8 @@ export const disableTextareaChildren = false;
97
98
export const disableUnstableRenderSubtreeIntoContainer = false;
99
100
+export const warnUnstableRenderSubtreeIntoContainer = false;
101
+
102
export const disableUnstableCreatePortal = false;
103
104
// Flow magic to verify the exports of this file match the original version.