diff --git a/packages/react-dom/src/__tests__/renderSubtreeIntoContainer-test.js b/packages/react-dom/src/__tests__/renderSubtreeIntoContainer-test.js index a7ae3807da416..2a540f9929d14 100644 --- a/packages/react-dom/src/__tests__/renderSubtreeIntoContainer-test.js +++ b/packages/react-dom/src/__tests__/renderSubtreeIntoContainer-test.js @@ -56,14 +56,18 @@ if (ReactFeatureFlags.disableUnstableRenderSubtreeIntoContainer) { } componentDidMount() { - expect( - function() { - renderSubtreeIntoContainer(this, , portal); - }.bind(this), - ).toWarnDev( - 'ReactDOM.unstable_renderSubtreeIntoContainer() is deprecated and ' + - 'will be removed in a future major release. Consider using React Portals instead.', - ); + if (ReactFeatureFlags.warnUnstableRenderSubtreeIntoContainer) { + expect( + function() { + renderSubtreeIntoContainer(this, , portal); + }.bind(this), + ).toWarnDev( + 'ReactDOM.unstable_renderSubtreeIntoContainer() is deprecated and ' + + 'will be removed in a future major release. Consider using React Portals instead.', + ); + } else { + renderSubtreeIntoContainer(this, , portal); + } } } diff --git a/packages/react-dom/src/client/ReactDOM.js b/packages/react-dom/src/client/ReactDOM.js index 19a3db22387c0..51b4071363b01 100644 --- a/packages/react-dom/src/client/ReactDOM.js +++ b/packages/react-dom/src/client/ReactDOM.js @@ -57,6 +57,7 @@ import { exposeConcurrentModeAPIs, disableUnstableCreatePortal, disableUnstableRenderSubtreeIntoContainer, + warnUnstableRenderSubtreeIntoContainer, } from 'shared/ReactFeatureFlags'; import { @@ -179,7 +180,10 @@ if (exposeConcurrentModeAPIs) { if (!disableUnstableRenderSubtreeIntoContainer) { ReactDOM.unstable_renderSubtreeIntoContainer = function(...args) { if (__DEV__) { - if (!didWarnAboutUnstableRenderSubtreeIntoContainer) { + if ( + warnUnstableRenderSubtreeIntoContainer && + !didWarnAboutUnstableRenderSubtreeIntoContainer + ) { didWarnAboutUnstableRenderSubtreeIntoContainer = true; console.warn( 'ReactDOM.unstable_renderSubtreeIntoContainer() is deprecated ' + diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js index 6705b683cf4c3..ead32bb435b40 100644 --- a/packages/shared/ReactFeatureFlags.js +++ b/packages/shared/ReactFeatureFlags.js @@ -111,6 +111,8 @@ export const disableTextareaChildren = false; // Disables ReactDOM.unstable_renderSubtreeIntoContainer export const disableUnstableRenderSubtreeIntoContainer = false; +// We should remove this flag once the above flag becomes enabled +export const warnUnstableRenderSubtreeIntoContainer = false; // Disables ReactDOM.unstable_createPortal export const disableUnstableCreatePortal = false; diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js index 0fac92224c125..7ae4ab0e4113d 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js @@ -48,6 +48,7 @@ export const enableTrustedTypesIntegration = false; export const disableCreateFactory = false; export const disableTextareaChildren = false; export const disableUnstableRenderSubtreeIntoContainer = false; +export const warnUnstableRenderSubtreeIntoContainer = false; export const disableUnstableCreatePortal = false; // Only used in www builds. diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js index 1ab71e94964cb..241dad2cf7e3c 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-oss.js +++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js @@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false; export const disableCreateFactory = false; export const disableTextareaChildren = false; export const disableUnstableRenderSubtreeIntoContainer = false; +export const warnUnstableRenderSubtreeIntoContainer = false; export const disableUnstableCreatePortal = false; // Only used in www builds. diff --git a/packages/shared/forks/ReactFeatureFlags.persistent.js b/packages/shared/forks/ReactFeatureFlags.persistent.js index 995cb081cdb21..a8bb6bf0aff56 100644 --- a/packages/shared/forks/ReactFeatureFlags.persistent.js +++ b/packages/shared/forks/ReactFeatureFlags.persistent.js @@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false; export const disableCreateFactory = false; export const disableTextareaChildren = false; export const disableUnstableRenderSubtreeIntoContainer = false; +export const warnUnstableRenderSubtreeIntoContainer = false; export const disableUnstableCreatePortal = false; // Only used in www builds. diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js index 4f8251d196b9d..ae94c8f7f5e7b 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js @@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false; export const disableCreateFactory = false; export const disableTextareaChildren = false; export const disableUnstableRenderSubtreeIntoContainer = false; +export const warnUnstableRenderSubtreeIntoContainer = false; export const disableUnstableCreatePortal = false; // Only used in www builds. diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js index 514d532333f8c..60448b0097b0e 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js @@ -41,6 +41,7 @@ export const enableNativeTargetAsInstance = false; export const disableCreateFactory = false; export const disableTextareaChildren = false; export const disableUnstableRenderSubtreeIntoContainer = false; +export const warnUnstableRenderSubtreeIntoContainer = false; export const disableUnstableCreatePortal = false; // Only used in www builds. diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js index cf14d167f297c..cd3e59e5fe589 100644 --- a/packages/shared/forks/ReactFeatureFlags.www.js +++ b/packages/shared/forks/ReactFeatureFlags.www.js @@ -97,6 +97,8 @@ export const disableTextareaChildren = false; export const disableUnstableRenderSubtreeIntoContainer = false; +export const warnUnstableRenderSubtreeIntoContainer = false; + export const disableUnstableCreatePortal = false; // Flow magic to verify the exports of this file match the original version.