diff --git a/src/renderers/dom/fiber/ReactDOMFiberEntry.js b/src/renderers/dom/fiber/ReactDOMFiberEntry.js index e01fff18f0f8..96c4a92cc4f9 100644 --- a/src/renderers/dom/fiber/ReactDOMFiberEntry.js +++ b/src/renderers/dom/fiber/ReactDOMFiberEntry.js @@ -74,10 +74,10 @@ findDOMNode._injectFiber(function(fiber: Fiber) { type DOMContainer = | (Element & { - _reactRootContainer: ?Object, + _reactRootContainer: ?Object }) | (Document & { - _reactRootContainer: ?Object, + _reactRootContainer: ?Object }); type Container = Element | Document; @@ -539,12 +539,7 @@ function renderSubtreeIntoContainer( const hostInstance = DOMRenderer.findHostInstance( container._reactRootContainer.current, ); - const hostInstanceParentNode: any = - hostInstance && hostInstance.parentNode; - const hostInstanceParentIsPortal = - hostInstanceParentNode && - hostInstanceParentNode.__reactInternalIsPortalContainer; - if (hostInstance && !hostInstanceParentIsPortal) { + if (hostInstance) { warning( hostInstance.parentNode === container, 'render(...): It looks like the React-rendered content of this ' + diff --git a/src/renderers/dom/fiber/__tests__/__snapshots__/ReactDOMFiber-test.js.snap b/src/renderers/dom/fiber/__tests__/__snapshots__/ReactDOMFiber-test.js.snap new file mode 100644 index 000000000000..55f93688b35c --- /dev/null +++ b/src/renderers/dom/fiber/__tests__/__snapshots__/ReactDOMFiber-test.js.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`ReactDOMFiber should warn when replacing a container which was manually updated outside of React 1`] = `""`; diff --git a/src/renderers/shared/fiber/ReactFiberTreeReflection.js b/src/renderers/shared/fiber/ReactFiberTreeReflection.js index 3e557375bb21..ce6e0a354bac 100644 --- a/src/renderers/shared/fiber/ReactFiberTreeReflection.js +++ b/src/renderers/shared/fiber/ReactFiberTreeReflection.js @@ -25,10 +25,11 @@ if (__DEV__) { } var { - HostRoot, + ClassComponent, HostComponent, + HostRoot, + HostPortal, HostText, - ClassComponent, } = require('ReactTypeOfWork'); var {NoEffect, Placement} = require('ReactTypeOfSideEffect'); @@ -241,8 +242,7 @@ exports.findCurrentHostFiber = function(parent: Fiber): Fiber | null { while (true) { if (node.tag === HostComponent || node.tag === HostText) { return node; - } else if (node.child) { - // TODO: If we hit a Portal, we're supposed to skip it. + } else if (node.child && node.tag !== HostPortal) { node.child.return = node; node = node.child; continue;