diff --git a/src/renderers/dom/fiber/ReactDOMFiber.js b/src/renderers/dom/fiber/ReactDOMFiber.js index 20d851dcee..a4ed6d3e54 100644 --- a/src/renderers/dom/fiber/ReactDOMFiber.js +++ b/src/renderers/dom/fiber/ReactDOMFiber.js @@ -322,9 +322,15 @@ function renderSubtreeIntoContainer(parentComponent : ?ReactComponent { + DOMRenderer.updateContainer(children, newRoot, parentComponent, callback); + }); + } else { + DOMRenderer.updateContainer(children, root, parentComponent, callback); } - DOMRenderer.updateContainer(children, root, parentComponent, callback); return DOMRenderer.getPublicRootInstance(root); } @@ -346,8 +352,11 @@ var ReactDOM = { unmountComponentAtNode(container : DOMContainerElement) { warnAboutUnstableUse(); if (container._reactRootContainer) { - return renderSubtreeIntoContainer(null, null, container, () => { - container._reactRootContainer = null; + // Unmount is always sync, even if we're in a batch. + return DOMRenderer.syncUpdates(() => { + return renderSubtreeIntoContainer(null, null, container, () => { + container._reactRootContainer = null; + }); }); } },