diff --git a/packages/react-dom/client.js b/packages/react-dom/client.js index 2234cc0a76ebe..0992c68d5b8e5 100644 --- a/packages/react-dom/client.js +++ b/packages/react-dom/client.js @@ -23,7 +23,7 @@ import { } from './'; export function createRoot( - container: Element | DocumentFragment, + container: Element | Document | DocumentFragment, options?: CreateRootOptions, ): RootType { if (__DEV__) { diff --git a/packages/react-dom/src/client/ReactDOM.js b/packages/react-dom/src/client/ReactDOM.js index 04355605ed57b..1c664588407bc 100644 --- a/packages/react-dom/src/client/ReactDOM.js +++ b/packages/react-dom/src/client/ReactDOM.js @@ -148,7 +148,7 @@ const Internals = { }; function createRoot( - container: Element | DocumentFragment, + container: Element | Document | DocumentFragment, options?: CreateRootOptions, ): RootType { if (__DEV__) { diff --git a/packages/react-dom/src/client/ReactDOMHostConfig.js b/packages/react-dom/src/client/ReactDOMHostConfig.js index 4b640055e5b4e..e4973ec667b53 100644 --- a/packages/react-dom/src/client/ReactDOMHostConfig.js +++ b/packages/react-dom/src/client/ReactDOMHostConfig.js @@ -672,9 +672,8 @@ export function clearContainer(container: Container): void { if (container.nodeType === ELEMENT_NODE) { ((container: any): Element).textContent = ''; } else if (container.nodeType === DOCUMENT_NODE) { - const body = ((container: any): Document).body; - if (body != null) { - body.textContent = ''; + if (container.documentElement) { + container.removeChild(container.documentElement); } } } diff --git a/packages/react-dom/src/client/ReactDOMRoot.js b/packages/react-dom/src/client/ReactDOMRoot.js index 55c340be7dff4..49084d0f9bfaa 100644 --- a/packages/react-dom/src/client/ReactDOMRoot.js +++ b/packages/react-dom/src/client/ReactDOMRoot.js @@ -164,7 +164,7 @@ ReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount = funct }; export function createRoot( - container: Element | DocumentFragment, + container: Element | Document | DocumentFragment, options?: CreateRootOptions, ): RootType { if (!isValidContainer(container)) {