hydration fix

pull/1839/head
Rich Harris 7 years ago
parent 0e60a8ce9c
commit e87ab18914

@ -348,6 +348,7 @@ export default class InlineComponentWrapper extends Wrapper {
${munged_handlers}
${this.fragment && this.fragment.nodes.map(child => child.remount(name))}
${name}.$$.fragment.c();
@mount_component(${name}, ${updateMountNode}, ${anchor});
${this.node.handlers.map(handler => deindent`

@ -9,16 +9,10 @@ export function bind(component, name, callback) {
callback(component.$$.get()[name]);
}
export function mount_component(component, target, anchor, hydrate) {
export function mount_component(component, target, anchor) {
const { fragment, refs, inject_refs, on_mount, on_destroy, after_render } = component.$$;
if (hydrate) {
fragment.l(children(target));
fragment.m(target, anchor); // TODO can we avoid moving DOM?
} else {
fragment.c();
fragment[fragment.i ? 'i' : 'm'](target, anchor);
}
fragment[fragment.i ? 'i' : 'm'](target, anchor);
inject_refs(refs);
@ -104,7 +98,14 @@ export function init(component, options, define, create_fragment, not_equal) {
if (options.target) {
intro.enabled = !!options.intro;
mount_component(component, options.target, options.anchor, options.hydrate);
if (options.hydrate) {
component.$$.fragment.l(children(options.target));
} else {
component.$$.fragment.c();
}
mount_component(component, options.target, options.anchor);
flush();
intro.enabled = true;
}

Loading…
Cancel
Save