Ionic-framework: VirtualScroll funktioniert nicht mit Immutable.List

Erstellt am 1. Sept. 2016  ·  3Kommentare  ·  Quelle: ionic-team/ionic-framework

Kurze Beschreibung des Problems:

Der Versuch, *ngFor="let item of items" durch eine virtualScroll-Alternative zu ersetzen, rendert kein Element (nichts im dom hinzugefügt) oder jedes virtualItem ist leer, wenn es sich bei den Elementen um eine Immutable.List handelt. Immutable.List ist aufzählbar und funktioniert daher gut mit ngFor und da angle2 und Immutability so gut zusammenarbeiten, glaube ich, dass dies funktionieren sollte.

Welches Verhalten erwartest du?

Elemente einer unveränderlichen Liste korrekt rendern

Welche Ionenversion? 1.x oder 2.x
Ionic 2 Beta 11

Plunker, der ein Beispiel für Ihr Problem zeigt

http://plnkr.co/edit/2c5ZIyDyGb12kwtQ4jXW?p=preview

Führen Sie ionic info über die Terminal-/cmd-Eingabeaufforderung aus: (fügen Sie die Ausgabe unten ein)
Cordova CLI: 6.3.0
Gulp-Version: CLI-Version 3.9.1
Gulp local: Lokale Version 3.9.1
Ionic Framework-Version: 2.0.0-beta.11
Ionic CLI-Version: 2.0.0-beta.36
Ionic App Lib Version: 2.0.0-beta.19
iOS-Bereitstellungsversion: 1.8.6
iOS-Sim-Version: 5.0.6
Betriebssystem: Mac OS X El Capitan
Knotenversion: v4.3.1
Xcode-Version: Xcode 7.3.1 Build-Version 7D1014

stale issue

Hilfreichster Kommentar

Um dieses Problem zu erhöhen, nachdem RC0 dieses Winkelfinale verwendet wurde, führt die Bereitstellung eines Arrays von unveränderlichen Objekten in VirtualScroll zu schwerwiegenden Leistungseinbußen, da VirtualScroll seine eigene Änderungserkennung auslöst, was zu einem tiefen Vergleich (durch devModeEqual) der unveränderlichen Objekte führt, die kostet einfach wahnsinnig viel zeit.
Ich glaube, dass VirtualScroll mit der OnPush-Strategie zur Änderungserkennung kompatibel sein sollte, um unveränderliche Objekte zu unterstützen.

AKTUALISIERUNG 20.04.17:
Ich glaube, dass dies nicht mehr der Fall ist, da Elementvergleiche Angular4.0-Diff-Vergleiche verwenden, die unveränderliche Elemente berücksichtigen, aber Listenaufzählungsprobleme in Virtual Scroll bleiben unverändert.

Alle 3 Kommentare

Um dieses Problem zu erhöhen, nachdem RC0 dieses Winkelfinale verwendet wurde, führt die Bereitstellung eines Arrays von unveränderlichen Objekten in VirtualScroll zu schwerwiegenden Leistungseinbußen, da VirtualScroll seine eigene Änderungserkennung auslöst, was zu einem tiefen Vergleich (durch devModeEqual) der unveränderlichen Objekte führt, die kostet einfach wahnsinnig viel zeit.
Ich glaube, dass VirtualScroll mit der OnPush-Strategie zur Änderungserkennung kompatibel sein sollte, um unveränderliche Objekte zu unterstützen.

AKTUALISIERUNG 20.04.17:
Ich glaube, dass dies nicht mehr der Fall ist, da Elementvergleiche Angular4.0-Diff-Vergleiche verwenden, die unveränderliche Elemente berücksichtigen, aber Listenaufzählungsprobleme in Virtual Scroll bleiben unverändert.

Dies ist immer noch ein Problem bei der neuesten Ionic (v3.0.1) und hier ist ein aktualisierter Plunker, der das Problem noch einmal demonstriert.
http://plnkr.co/edit/2Pz0fIX9MV7er12UaFRf?p=preview

Unsere App nutzt unveränderliche Sets und Listen überall, aber aufgrund der Tatsache , dass wir in einer Liste 1000s Datensätze anzuzeigen, haben wir virtuelle Scroll verwenden. Dies erfordert, dass alle Daten in veränderliche Objekte zurückkonvertiert werden (sehr kostspielig) und alle Komponenten, die innerhalb der virtuellen Bildlaufleiste verwendet werden, müssen ebenfalls veränderliche Objekte akzeptieren.
Auf diese Weise sind wir irgendwie gefangen, da wir für eine bessere Leistung virtuelles Scrollen verwenden müssen, aber wir verringern die Leistung, da wir versuchen, mit virtuellem Scrollen kompatibel zu sein.

Danke für das Problem! Dieses Problem wird aufgrund von Inaktivität geschlossen. Wenn dies immer noch ein Problem mit der neuesten Version von Ionic ist, erstellen Sie bitte ein neues Problem und stellen Sie sicher, dass die Vorlage vollständig ausgefüllt ist.

Vielen Dank, dass Sie Ionic verwenden!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

gio82 picture gio82  ·  3Kommentare

giammaleoni picture giammaleoni  ·  3Kommentare

Nick-The-Uncharted picture Nick-The-Uncharted  ·  3Kommentare

danbucholtz picture danbucholtz  ·  3Kommentare

SebastianGiro picture SebastianGiro  ·  3Kommentare