Put createRoot export under a feature flag (#11426)
Clement Hoang committed
Nov 2, 2017 at 15:21 UTC
1e35f2b282a20b41000e6b048fa5a16e147d930b
4 files changed
+16
-6
packages/react-cs-renderer/src/ReactNativeCSFeatureFlags.js
+1
@@ -13,6 +13,7 @@ var ReactNativeCSFeatureFlags: FeatureFlags = {
13
enableAsyncSubtreeAPI: true,
14
enableAsyncSchedulingByDefaultInReactDOM: false,
15
enableReactFragment: false,
16
+ enableCreateRoot: false,
17
// React Native CS uses persistent reconciler.
18
enableMutatingReconciler: false,
19
enableNoopReconciler: false,
packages/react-dom/src/__tests__/ReactDOMRoot-test.js
+1
@@ -9,6 +9,7 @@
9
10
'use strict';
11
12
+require('shared/ReactFeatureFlags').enableCreateRoot = true;
13
var React = require('react');
14
var ReactDOM = require('react-dom');
15
var ReactDOMServer = require('react-dom/server');
packages/react-dom/src/client/ReactDOM.js
+11
-6
@@ -787,12 +787,7 @@ ReactRoot.prototype.unmount = function(callback) {
787
DOMRenderer.updateContainer(null, root, null, callback);
788
};
789
790
-var ReactDOM = {
791
- createRoot(container: DOMContainer, options?: RootOptions): ReactRootNode {
792
- const hydrate = options != null && options.hydrate === true;
793
- return new ReactRoot(container, hydrate);
794
- },
795
-
790
+var ReactDOM: Object = {
791
createPortal,
792
793
findDOMNode(
@@ -952,6 +947,16 @@ var ReactDOM = {
947
},
948
};
949
950
+if (ReactFeatureFlags.enableCreateRoot) {
951
+ ReactDOM.createRoot = function createRoot(
952
+ container: DOMContainer,
953
+ options?: RootOptions,
954
+ ): ReactRootNode {
955
+ const hydrate = options != null && options.hydrate === true;
956
+ return new ReactRoot(container, hydrate);
957
+ };
958
+}
959
+
960
const foundDevTools = injectInternals({
961
findFiberByHostInstance: ReactDOMComponentTree.getClosestInstanceFromNode,
962
findHostInstanceByFiber: DOMRenderer.findHostInstance,
packages/shared/ReactFeatureFlags.js
+3
@@ -14,6 +14,7 @@ export type FeatureFlags = {|
14
enableNoopReconciler: boolean,
15
enablePersistentReconciler: boolean,
16
enableReactFragment: boolean,
17
+ enableCreateRoot: boolean,
18
|};
19
20
var ReactFeatureFlags: FeatureFlags = {
@@ -27,6 +28,8 @@ var ReactFeatureFlags: FeatureFlags = {
28
enablePersistentReconciler: false,
29
// Exports React.Fragment
30
enableReactFragment: false,
31
+ // Exports ReactDOM.createRoot
32
+ enableCreateRoot: false,
33
};
34
35
if (__DEV__) {