diff --git a/packages/core/src/components/nav-push/nav-push.tsx b/packages/core/src/components/nav-push/nav-push.tsx index 9e5f15a822..1d5cfbbb1a 100644 --- a/packages/core/src/components/nav-push/nav-push.tsx +++ b/packages/core/src/components/nav-push/nav-push.tsx @@ -14,8 +14,8 @@ export class NavPush { @Listen('child:click') push(): Promise { const nav = this.el.closest('ion-nav'); - if (nav) { - const toPush = this.url || this.component; + const toPush = this.url || this.component; + if (nav && toPush) { return nav.push(toPush, this.data); } return Promise.resolve(null); diff --git a/packages/core/src/components/virtual-scroll/test/basic.html b/packages/core/src/components/virtual-scroll/test/basic.html index 8bd4fe015c..2dc282b14c 100644 --- a/packages/core/src/components/virtual-scroll/test/basic.html +++ b/packages/core/src/components/virtual-scroll/test/basic.html @@ -26,6 +26,12 @@ Add Items

+ + + + @@ -36,8 +42,10 @@ const virtual = document.getElementById('virtual'); const items = Array.from({length: 100}, (x, i) => i); - function addItems() { - const append = Array.from({length: 10}, (x, i) => "append" + i); + function addItems(append) { + if(!append) { + append = Array.from({length: 10}, (x, i) => "append" + i); + } items.push(...append); virtual.markDirtyTail(append.length) } @@ -79,6 +87,27 @@ return renderHeader(el, cell.value); }; virtual.items = items; + + + + const infiniteScroll = document.getElementById('infinite-scroll'); + infiniteScroll.addEventListener('ionInfinite', async function() { + console.log('Loading data...'); + const data = await getAsyncData(); + infiniteScroll.complete(); + addItems(data); + + console.log('Done'); + }); + + function getAsyncData() { + return new Promise(resolve => { + setTimeout(() => { + const data = Array.from({length: 10}, (x, i) => "append" + i); + resolve(data); + }, 500); + }); + }