Skip to content
This repository has been archived by the owner on Dec 16, 2021. It is now read-only.

Commit

Permalink
Account for re-rendering root components that swap their base. Fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
developit committed Feb 19, 2017
1 parent 57082d6 commit 4de5887
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ function handleElementVNode(vnode, a) {

// proxy render() since React returns a Component reference.
function render(vnode, parent, callback) {
let prev = parent && parent._preactCompatRendered;
let prev = parent && parent._preactCompatRendered && parent._preactCompatRendered.base;

// ignore impossible previous renders
if (prev && prev.parentNode!==parent) prev = null;
Expand All @@ -149,9 +149,9 @@ function render(vnode, parent, callback) {
}

let out = preactRender(vnode, parent, prev);
if (parent) parent._preactCompatRendered = out;
if (parent) parent._preactCompatRendered = out && (out._component || { base: out });
if (typeof callback==='function') callback();
return out && out._component || out.base;
return out && out._component || out;
}


Expand All @@ -173,7 +173,7 @@ function renderSubtreeIntoContainer(parentComponent, vnode, container, callback)


function unmountComponentAtNode(container) {
let existing = container._preactCompatRendered;
let existing = container._preactCompatRendered && container._preactCompatRendered.base;
if (existing && existing.parentNode===container) {
preactRender(h(EmptyComponent), container, existing);
return true;
Expand Down

0 comments on commit 4de5887

Please sign in to comment.