Put createRoot export under a feature flag (#11426)

This commit is contained in:
Clement Hoang
2017-11-02 15:21:06 -07:00
committed by Andrew Clark
parent 45c1ff348e
commit 1e35f2b282
4 changed files with 16 additions and 6 deletions

View File

@@ -13,6 +13,7 @@ var ReactNativeCSFeatureFlags: FeatureFlags = {
enableAsyncSubtreeAPI: true,
enableAsyncSchedulingByDefaultInReactDOM: false,
enableReactFragment: false,
enableCreateRoot: false,
// React Native CS uses persistent reconciler.
enableMutatingReconciler: false,
enableNoopReconciler: false,

View File

@@ -9,6 +9,7 @@
'use strict';
require('shared/ReactFeatureFlags').enableCreateRoot = true;
var React = require('react');
var ReactDOM = require('react-dom');
var ReactDOMServer = require('react-dom/server');

View File

@@ -787,12 +787,7 @@ ReactRoot.prototype.unmount = function(callback) {
DOMRenderer.updateContainer(null, root, null, callback);
};
var ReactDOM = {
createRoot(container: DOMContainer, options?: RootOptions): ReactRootNode {
const hydrate = options != null && options.hydrate === true;
return new ReactRoot(container, hydrate);
},
var ReactDOM: Object = {
createPortal,
findDOMNode(
@@ -952,6 +947,16 @@ var ReactDOM = {
},
};
if (ReactFeatureFlags.enableCreateRoot) {
ReactDOM.createRoot = function createRoot(
container: DOMContainer,
options?: RootOptions,
): ReactRootNode {
const hydrate = options != null && options.hydrate === true;
return new ReactRoot(container, hydrate);
};
}
const foundDevTools = injectInternals({
findFiberByHostInstance: ReactDOMComponentTree.getClosestInstanceFromNode,
findHostInstanceByFiber: DOMRenderer.findHostInstance,

View File

@@ -14,6 +14,7 @@ export type FeatureFlags = {|
enableNoopReconciler: boolean,
enablePersistentReconciler: boolean,
enableReactFragment: boolean,
enableCreateRoot: boolean,
|};
var ReactFeatureFlags: FeatureFlags = {
@@ -27,6 +28,8 @@ var ReactFeatureFlags: FeatureFlags = {
enablePersistentReconciler: false,
// Exports React.Fragment
enableReactFragment: false,
// Exports ReactDOM.createRoot
enableCreateRoot: false,
};
if (__DEV__) {