ionic 3.X: виртуальная прокрутка с бесконечной прокруткой (т.е. изменение набора данных)

Я использую версию "ionic-angular": "3.2.1", но виртуальный список показывает следующий пустой экран после некоторых прокруток.

введите здесь описание изображения

Я пробовал по следующему коду.

<ion-content padding>
    <ion-list [virtualScroll]="products" approxItemHeight="100px" [virtualTrackBy]="trackProduct">
        <ion-item category-item *virtualItem="let product" (click)="viewProduct(product)">
            <img product-image src="some_url.png" />
            <div prduct-description ellipsize>
            <div product-name ellipsize>{{product.productName || "" | uppercase}}</div>
                <div product-sku ellipsize>SKU# : {{product.sku}}</div>
                <div price>${{product.price}}/Case</div>
            </div>
        </ion-item>
    </ion-list>
    <ion-infinite-scroll (ionInfinite)="doInfinite($event)" threshold="100px" #infiniteScroll>
        <ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="Loading more data...">
        </ion-infinite-scroll-content>
    </ion-infinite-scroll>
</ion-content>

вот соответствующий код файла ts:

 /**
  *  This method will be used for virtual scroll.
  * @param index 
  * @param product 
  */
  trackProduct(index, product: Product) {
    console.log(index, product);
    return product.productId;
  }
  • trackProduct не вызывается.

Я также пробовал без директивы virtualTrackBy, но ничего не получалось.

Кто-нибудь может мне помочь?


person Sandeep Sharma    schedule 22.05.2017    source источник
comment
Вы уверены, что URL-адрес изображения для этого элемента действителен?   -  person Ari    schedule 31.05.2017
comment
Похоже, это известная ошибка, которую только что исправили! github.com/ionic-team/ionic/pull/11624   -  person Ari    schedule 31.05.2017


Ответы (1)


Вам нужно использовать »продукты | async 'pipe, если' products 'получает контент с сервера, например firebaselistobservable. В обычном массиве virtualTrackBy никогда не вызывается.

person Shelf-A    schedule 23.05.2017