| Index: sky/framework/fn.dart
|
| diff --git a/sky/framework/fn.dart b/sky/framework/fn.dart
|
| index fc6ef99bbd974e84918e8c736dfef6b88fda846a..dbf193ab04bfd2e9cf116267bcc7430a0102d864 100644
|
| --- a/sky/framework/fn.dart
|
| +++ b/sky/framework/fn.dart
|
| @@ -615,8 +615,14 @@ abstract class Component extends Node {
|
|
|
| _dirty = false;
|
|
|
| - if (oldRendered != null && _rendered.runtimeType != oldRendered.runtimeType)
|
| + // TODO(rafaelw): This eagerly removes the old DOM. It may be that a
|
| + // new component was rendered that could re-use some of it. Consider
|
| + // syncing the new VDOM against the old one.
|
| + if (oldRendered != null &&
|
| + _rendered.runtimeType != oldRendered.runtimeType) {
|
| + oldRendered._remove();
|
| oldRendered = null;
|
| + }
|
|
|
| if (_rendered._sync(oldRendered, host, insertBefore)) {
|
| _rendered = oldRendered; // retain stateful component
|
|
|