diff --git a/compat/src/portals.js b/compat/src/portals.js index 521174ce4d..ddbcdbd0dd 100644 --- a/compat/src/portals.js +++ b/compat/src/portals.js @@ -39,6 +39,7 @@ function Portal(props) { nodeType: 1, parentNode: container, childNodes: [], + contains: () => true, appendChild(child) { this.childNodes.push(child); _this._container.appendChild(child); diff --git a/src/diff/children.js b/src/diff/children.js index fb31e7b15c..00bb6d3840 100644 --- a/src/diff/children.js +++ b/src/diff/children.js @@ -117,7 +117,7 @@ export function diffChildren( oldVNode._children === childVNode._children ) { // @ts-expect-error olDom should be present on a DOM node - if (oldDom && !oldDom.isConnected) { + if (oldDom && !parentDom.contains(oldDom)) { oldDom = getDomSibling(oldVNode); } oldDom = insert(childVNode, oldDom, parentDom);