Ionic-framework: VirtualScroll ne fonctionne pas avec Immutable.List

Créé le 1 sept. 2016  ·  3Commentaires  ·  Source: ionic-team/ionic-framework

Brève description du problème :

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.

Quel comportement attendez-vous ?

Rendre correctement les éléments d'une liste immuable

Quelle version ionique ? 1.x ou 2.x
Ionique 2 bêta 11

Plunker qui montre un exemple de votre problème

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

stale issue

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.

Tous les 3 commentaires

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 !

Cette page vous a été utile?
0 / 5 - 0 notes