Essayer de remplacer *ngFor="let item of items"
par l'alternative virtualScroll ne rend aucun élément (rien d'ajouté dans le dom) ou chaque virtualItem est vide si items est un Immutable.List. Immutable.List est énumérable et fonctionne donc bien avec ngFor et puisque angular2 et immutability fonctionnent si bien ensemble, je pense que cela devrait fonctionner.
Rendre correctement les éléments d'une liste immuable
Quelle version ionique ? 1.x ou 2.x
Ionique 2 bêta 11
http://plnkr.co/edit/2c5ZIyDyGb12kwtQ4jXW?p=preview
Exécutez ionic info
partir de l'invite du terminal/cmd : (collez la sortie ci-dessous)
Cordoue CLI : 6.3.0
Version Gulp : CLI version 3.9.1
Gulp local : version locale 3.9.1
Version du cadre ionique : 2.0.0-beta.11
Version Ionic CLI : 2.0.0-beta.36
Version de l'application Ionic Lib : 2.0.0-beta.19
version de déploiement d'ios : 1.8.6
version ios-sim : 5.0.6
OS : Mac OS X El Capitan
Version du nœud : v4.3.1
Version Xcode : Xcode 7.3.1 Version de construction 7D1014
Pour ajouter à ce problème, après RC0, cette finale angulaire a été utilisée, fournir un tableau d'objets immuables dans VirtualScroll entraîne une grave dégradation des performances car VirtualScroll effectue son propre déclenchement de détection de changement, ce qui conduit à une comparaison approfondie (via devModeEqual) des objets immuables qui prend juste un temps fou.
Je pense que VirtualScroll devrait être compatible avec la stratégie de détection de changement OnPush afin de prendre en charge les objets immuables.
MISE À JOUR 20/04/17 :
Je pense que ce n'est plus le cas, car les comparaisons d'éléments utilisent des comparaisons diff Angular4.0 qui tiennent compte des éléments immuables, mais les problèmes d'énumération de liste dans Virtual Scroll restent inchangés.
C'est toujours un problème sur le dernier Ionic (v3.0.1) et voici un plunker mis à jour démontrant le problème une fois de plus.
http://plnkr.co/edit/2Pz0fIX9MV7er12UaFRf?p=preview
Notre application utilise des ensembles et des listes immuables partout, mais en raison du fait que nous devons afficher 1000s d'enregistrements dans une liste déroulante, nous devons utiliser défilement virtuel. Cela nécessite que toutes les données soient reconverties en objets mutables (très coûteux) et que tous les composants utilisés à l'intérieur du parchemin virtuel doivent également accepter les objets mutables.
De cette façon, nous sommes en quelque sorte piégés car nous devons utiliser le défilement virtuel pour de meilleures performances, mais nous dégradons les performances en essayant d'être compatible avec le défilement virtuel.
Merci pour le problème ! Ce problème est fermé pour cause d'inactivité. Si le problème persiste avec la dernière version d'Ionic, veuillez créer un nouveau problème et vous assurer que le modèle est entièrement rempli.
Merci d'avoir utilisé Ionic !
Commentaire le plus utile
Pour ajouter à ce problème, après RC0, cette finale angulaire a été utilisée, fournir un tableau d'objets immuables dans VirtualScroll entraîne une grave dégradation des performances car VirtualScroll effectue son propre déclenchement de détection de changement, ce qui conduit à une comparaison approfondie (via devModeEqual) des objets immuables qui prend juste un temps fou.
Je pense que VirtualScroll devrait être compatible avec la stratégie de détection de changement OnPush afin de prendre en charge les objets immuables.
MISE À JOUR 20/04/17 :
Je pense que ce n'est plus le cas, car les comparaisons d'éléments utilisent des comparaisons diff Angular4.0 qui tiennent compte des éléments immuables, mais les problèmes d'énumération de liste dans Virtual Scroll restent inchangés.