diff --git a/packages/react-dom/src/__tests__/renderSubtreeIntoContainer-test.js b/packages/react-dom/src/__tests__/renderSubtreeIntoContainer-test.js index a7ae3807da41..2a540f9929d1 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 19a3db22387c..51b4071363b0 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 6705b683cf4c..ead32bb435b4 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 0fac92224c12..7ae4ab0e4113 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 1ab71e94964c..241dad2cf7e3 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 995cb081cdb2..a8bb6bf0aff5 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 4f8251d196b9..ae94c8f7f5e7 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 514d532333f8..60448b0097b0 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 cf14d167f297..cd3e59e5fe58 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.