Я наткнулся на действительно странную проблему. Я создаю приложение Ionic с Angular, и у меня есть ngFor
с reverse
, странная вещь, это фантастически работает, если я запускаю его на своем устройстве, но как только я добавляю --prod
переменная для запуска в рабочем состоянии reverse
вызывает сильное мерцание. По сути, он меняется между состоянием reverse
и нереверсивным каждую секунду ... Он отлично работает, когда не работает.
Вот гифка:
19 часов - это то, что я хочу показать первым, 15 дней - это то, что я хочу показать последним.
Вот мой код для извлечения из firebase:
goToNew() {
this.zone = new NgZone({});
this.postFeed = new Array();
this.feedCounter = new Array();
this.database.database.ref('/posts/'+this.locationId)
.orderByChild('created')
.limitToLast(10)
.once('value', (snapshot) => {
snapshot.forEach(child => {
this.feedCounter.push(child.val());
this.postFeed.push(child.val());
return false;
});
});
}
и вот мой HTML:
<ng-container *ngFor="let post of postFeed.reverse; let i = index">
<div *ngIf="i > 0 && i % 10 == 0" class="pageIndicator">
<div class="seperator"></div>
<div class="pageNumb">Page {{i / 10 + 1}}</div>
<div class="seperator"></div>
</div>
<post [postData]="post"></post>
</ng-container>
Я также пробовал this.postFeed.reverse()
в функции goToNow()
, но она делает то же самое. Я также попробовал this.postFeed.unshift()
вместо push
, но это не сработало вообще.
Итак, как я уже сказал, это работает на 100%, когда я запускаю свое приложение как:
ionic cordova run android --device
но как только я это сделаю:
ionic cordova run android --device --prod
Это волнуется. Удаление reverse
работает, но я не хочу отображать массив.
Что я делаю не так? Это ошибка с Ionic / Angular / Что-то еще? У меня нет идеи, почему это не работает с --prod
.