Ionic-framework: لا يعمل برنامج VirtualScroll مع Immutable.List

تم إنشاؤها على ١ سبتمبر ٢٠١٦  ·  3تعليقات  ·  مصدر: ionic-team/ionic-framework

وصف موجز للمشكلة:

محاولة استبدال *ngFor="let item of items" ببديل VirtualScroll لا يعرض أي عنصر (لا شيء مضاف في dom) أو أن كل عنصر افتراضي فارغ إذا كانت العناصر عبارة عن قائمة ثابتة. غير قابل للتغيير ، القائمة قابلة للعد ، وبالتالي تعمل بشكل جيد مع ngFor وبما أن الزاوية 2 والثبات يعملان معًا بشكل جيد ، أعتقد أن هذا يجب أن يعمل.

ما هو السلوك الذي تتوقعه؟

عرض عناصر قائمة غير قابلة للتغيير بشكل صحيح

أي إصدار أيوني؟ 1.x أو 2.x
أيونيك 2 بيتا 11

Plunker الذي يظهر مثالاً على مشكلتك

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

قم بتشغيل ionic info من الطرفية / موجه أوامر cmd: (الصق الإخراج أدناه)
كوردوفا CLI: 6.3.0
إصدار Gulp: إصدار CLI 3.9.1
محلي Gulp: الإصدار المحلي 3.9.1
إصدار الإطار الأيوني: 2.0.0-beta.11
إصدار CLI الأيوني: 2.0.0-beta.36
إصدار ليب التطبيق الأيوني: 2.0.0-beta.19
إصدار iOS: 1.8.6
إصدار ios-sim: 5.0.6
نظام التشغيل: Mac OS X El Capitan
إصدار العقدة: v4.3.1
إصدار Xcode: Xcode 7.3.1 Build version 7D1014

stale issue

التعليق الأكثر فائدة

للإضافة إلى هذه المشكلة ، بعد استخدام RC0 هذا الشكل النهائي الزاوي ، يؤدي توفير مجموعة من الكائنات غير القابلة للتغيير في برنامج VirtualScroll إلى تدهور شديد في الأداء حيث يقوم برنامج VirtualScroll باكتشاف التغيير الخاص به مما يؤدي إلى مقارنة عميقة (من خلال devModeEqual) للكائنات غير القابلة للتغيير يستغرق وقتًا طويلاً جدًا.
أعتقد أن برنامج VirtualScroll يجب أن يكون متوافقًا مع إستراتيجية الكشف عن التغيير OnPush من أجل دعم الكائنات غير القابلة للتغيير.

تحديث 20/04/17:
أعتقد أن هذا لم يعد هو الحال ، حيث تستخدم مقارنات العناصر Angular4.0 مقارنة بالعناصر غير القابلة للتغيير ، ولكن تظل مشكلات تعداد القوائم داخل Virtual Scroll دون تغيير.

ال 3 كومينتر

للإضافة إلى هذه المشكلة ، بعد استخدام RC0 هذا الشكل النهائي الزاوي ، يؤدي توفير مجموعة من الكائنات غير القابلة للتغيير في برنامج VirtualScroll إلى تدهور شديد في الأداء حيث يقوم برنامج VirtualScroll باكتشاف التغيير الخاص به مما يؤدي إلى مقارنة عميقة (من خلال devModeEqual) للكائنات غير القابلة للتغيير يستغرق وقتًا طويلاً جدًا.
أعتقد أن برنامج VirtualScroll يجب أن يكون متوافقًا مع إستراتيجية الكشف عن التغيير OnPush من أجل دعم الكائنات غير القابلة للتغيير.

تحديث 20/04/17:
أعتقد أن هذا لم يعد هو الحال ، حيث تستخدم مقارنات العناصر Angular4.0 مقارنة بالعناصر غير القابلة للتغيير ، ولكن تظل مشكلات تعداد القوائم داخل Virtual Scroll دون تغيير.

لا تزال هذه مشكلة في أحدث إصدار من Ionic (الإصدار 3.0.1) ، وهنا يوجد مكبس محدث يوضح المشكلة مرة أخرى.
http://plnkr.co/edit/2Pz0fIX9MV7er12UaFRf؟p=preview

يستخدم تطبيقنا مجموعات وقوائم غير قابلة للتغيير في كل مكان ، ولكن نظرًا لحقيقة أنه يتعين علينا عرض آلاف السجلات في قائمة قابلة للتمرير ، يتعين علينا استخدام التمرير الافتراضي. يتطلب هذا تحويل جميع البيانات مرة أخرى إلى كائنات قابلة للتغيير (مكلفة للغاية) ويجب أن تقبل جميع المكونات المستخدمة داخل التمرير الافتراضي كائنات قابلة للتغيير أيضًا.
بهذه الطريقة نحن محاصرون نوعًا ما حيث يتعين علينا استخدام التمرير الافتراضي للحصول على أداء أفضل ، لكننا نتراجع عن الأداء بسبب محاولتنا التوافق مع التمرير الافتراضي.

شكرا على القضية! تم إغلاق هذه المشكلة بسبب عدم النشاط. إذا استمرت المشكلة في أحدث إصدار من Ionic ، فيرجى إنشاء مشكلة جديدة والتأكد من ملء النموذج بالكامل.

شكرًا لك على استخدام Ionic!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات