windy 4 years ago
parent
commit
5f020967fc
  1. 14
      src/core/wrapper/layout.js

14
src/core/wrapper/layout.js

@ -399,23 +399,23 @@ BI.Layout = BI.inherit(BI.Widget, {
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
} else if (sameVnode(oldStartVnode, newStartVnode, oldStartIdx, newStartIdx)) { } else if (sameVnode(oldStartVnode, newStartVnode, oldStartIdx, newStartIdx)) {
updated = this.patchItem(oldStartVnode, newStartVnode, oldStartIdx) || updated; updated = this.patchItem(oldStartVnode, newStartVnode, oldStartIdx) || updated;
children[oldStartVnode.key == null ? this._getChildName(oldStartIdx) : oldStartVnode.key] = this._children[this._getChildName(oldStartIdx)]; children[oldStartVnode.key == null ? oldStartIdx : oldStartVnode.key] = this._children[this._getChildName(oldStartIdx)];
oldStartVnode = oldCh[++oldStartIdx]; oldStartVnode = oldCh[++oldStartIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else if (sameVnode(oldEndVnode, newEndVnode, oldEndIdx, newEndIdx)) { } else if (sameVnode(oldEndVnode, newEndVnode, oldEndIdx, newEndIdx)) {
updated = this.patchItem(oldEndVnode, newEndVnode, oldEndIdx) || updated; updated = this.patchItem(oldEndVnode, newEndVnode, oldEndIdx) || updated;
children[oldEndVnode.key == null ? this._getChildName(oldEndIdx) : oldEndVnode.key] = this._children[this._getChildName(oldEndIdx)]; children[oldEndVnode.key == null ? oldEndIdx : oldEndVnode.key] = this._children[this._getChildName(oldEndIdx)];
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newEndVnode = newCh[--newEndIdx]; newEndVnode = newCh[--newEndIdx];
} else if (sameVnode(oldStartVnode, newEndVnode)) { } else if (sameVnode(oldStartVnode, newEndVnode)) {
updated = this.patchItem(oldStartVnode, newEndVnode, oldStartIdx) || updated; updated = this.patchItem(oldStartVnode, newEndVnode, oldStartIdx) || updated;
children[oldStartVnode.key == null ? this._getChildName(oldStartIdx) : oldStartVnode.key] = this._children[this._getChildName(oldStartIdx)]; children[oldStartVnode.key == null ? oldStartIdx : oldStartVnode.key] = this._children[this._getChildName(oldStartIdx)];
insertBefore(oldStartVnode, oldEndVnode, true); insertBefore(oldStartVnode, oldEndVnode, true);
oldStartVnode = oldCh[++oldStartIdx]; oldStartVnode = oldCh[++oldStartIdx];
newEndVnode = newCh[--newEndIdx]; newEndVnode = newCh[--newEndIdx];
} else if (sameVnode(oldEndVnode, newStartVnode)) { } else if (sameVnode(oldEndVnode, newStartVnode)) {
updated = this.patchItem(oldEndVnode, newStartVnode, oldEndIdx) || updated; updated = this.patchItem(oldEndVnode, newStartVnode, oldEndIdx) || updated;
children[oldEndVnode.key == null ? this._getChildName(oldEndIdx) : oldEndVnode.key] = this._children[this._getChildName(oldEndIdx)]; children[oldEndVnode.key == null ? oldEndIdx : oldEndVnode.key] = this._children[this._getChildName(oldEndIdx)];
insertBefore(oldEndVnode, oldStartVnode); insertBefore(oldEndVnode, oldStartVnode);
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
@ -429,7 +429,7 @@ BI.Layout = BI.inherit(BI.Widget, {
BI.each(oldCh, function (index, child) { BI.each(oldCh, function (index, child) {
if (child && sameVnode(child, newStartVnode)) { if (child && sameVnode(child, newStartVnode)) {
updated = self.patchItem(sameOldVnode, newStartVnode, index) || updated; updated = self.patchItem(sameOldVnode, newStartVnode, index) || updated;
children[sameOldVnode.key == null ? self._getChildName(index) : sameOldVnode.key] = self._children[self._getChildName(index)]; children[sameOldVnode.key == null ? index : sameOldVnode.key] = self._children[self._getChildName(index)];
oldCh[index] = undefined; oldCh[index] = undefined;
insertBefore(sameOldVnode, oldStartVnode); insertBefore(sameOldVnode, oldStartVnode);
} }
@ -492,9 +492,9 @@ BI.Layout = BI.inherit(BI.Widget, {
function insertBefore (insert, before, isNext, index) { function insertBefore (insert, before, isNext, index) {
insert = self._getOptions(insert); insert = self._getOptions(insert);
before = before && self._getOptions(before); before = before && self._getOptions(before);
var insertKey = BI.isKey(insert.key) ? insert.key : self._getChildName(index); var insertKey = BI.isKey(insert.key) ? insert.key : index;
if (before && children[before.key]) { if (before && children[before.key]) {
var beforeKey = BI.isKey(before.key) ? before.key : self._getChildName(index); var beforeKey = BI.isKey(before.key) ? before.key : index;
var next; var next;
if (isNext) { if (isNext) {
next = children[beforeKey].element.next(); next = children[beforeKey].element.next();

Loading…
Cancel
Save