هل فكرت في استخدام FlatList
بدلاً من ScrollView
؟ سيؤدي ذلك إلى تحسين الأداء كثيرًا ولديه حمل كسول للعناصر التي تعمل بشكل صحيح
مرحبًا scerelli ، وشكرًا على الاقتراح.
في الواقع ، نعم ، لقد نظرنا في هذا. لسوء الحظ ، في هذه المرحلة ، لا يمكن حل مشكلات مثل هذه المشكلة بالنسبة لنا.
ومع ذلك ، سنواصل تجربة FlatList
ونراقب تطور المكون عن كثب.
مرحبا يا رفاق ،
@ bd-arc فقط لفت انتباهي إلى هذا الموضوع.
أنا مهتم باستخدام react-native-snap-carousel
مع عدد كبير من العناصر (~ 2000). من خلال ما أفهمه ، لا يزال FlatList
غير ناضج بعض الشيء ولديه أخطاء مثل https://github.com/facebook/react-native/issues/14037 والتي هي إلى حد كبير سدادات للعرض.
ما رأيكم يا رفاق في البدء بمنفذ إلى ListView أولاً؟
تقرأ وثائق Facebook الخاصة
يعمل ScrollView بشكل أفضل لتقديم كمية صغيرة من الأشياء ذات الحجم المحدود. يتم تقديم جميع عناصر وطرق عرض ScrollView ، حتى لو لم تكن معروضة حاليًا على الشاشة. إذا كانت لديك قائمة طويلة بالعناصر الإضافية التي يمكن احتواؤها على الشاشة ، فيجب عليك استخدام ListView بدلاً من ذلك.
يبدو أن التبديل إلى ListView
أولاً سيعالج بالفعل بعض مشكلات الأداء القبيحة التي أراها حاليًا مع عدد كبير من العناصر في react-native-snap-carousel
.
يبدو أيضًا أنه يمكن استخدام FlatList
تقريبًا كبديل مؤقت لـ ListView
. قد يأمل المرء أن يقوم Facebook في النهاية بإصلاح تلك الأخطاء التي FlatList
. في هذه الحالة ، من المحتمل أن نتبادل بدون ألم في FlatList
مقابل ListView
عندما نشعر أن FlatList
قد وصل أخيرًا إلى جودة الإنتاج.
إذا كنتم توافقون على هذا الاتجاه ، فهل ستكونون مهتمين ببدء فرع جديد ينقل react-native-snap-carousel
إلى ListView
أولاً؟
PublicParadise لاحظ أن هناك عيبًا رئيسيًا واحدًا في استخدام إما ListView
أو FlatList
: لن يتمكن المرء بعد الآن من استخدام مكونات مختلفة كشرائح دائرية ، مما قد يفسد المكون الإضافي لبعض المستخدمين .. .
مع وضع ذلك في الاعتبار ، سيكون من الرائع تقديم أفضل ما في العالمين:
ScrollView
للعرض الدائري اللامع مع أنواع شرائح متنوعة وأقل من 50 عنصرًا على سبيل المثالFlatList
للعربات الدوارة الموجهة نحو الأداء بعناصر متطابقة.أحتاج إلى اللعب بالشفرة لمعرفة مدى قابليتها للصيانة.
الأفكار والاقتراحات موضع ترحيب كبير ؛-)
PublicParadise حسنًا ، انسَ ما قلته للتو ؛ يجب أن تساعد الخاصية getItemLayout
لـ FlatList
حقًا في تجانس الأمور. قد نتمكن حتى من تقديم الدعم للأطفال بمختلف itemWidth
.
لذلك دعونا نركز على الانتقال إلى Flatlist
على المدى المتوسط ؛-)
@ bd-arc أحب فكرة تقديم كلا العالمين. يمكنك دائمًا أن تقرر لاحقًا ما إذا كنت تريد التقاعد بإصدار ScrollView
.
مرحباً ، هل لديك أي دليل متى سينتهي هذا؟ أتطلع حقًا إلى إصدار القائمة الثابتة!
مرحبًا EdmundMai ، يجب أن أتمكن من العمل عليه هذا الأسبوع أو الأسبوع الذي
@ bd-arc رائع ، شكرًا جزيلاً على هذه المكتبة !!
هل ما زالت https://github.com/facebook/react-native/issues/14037 تمثل مشكلة؟ يبدو أنه تم إغلاقه بسبب نقص البيانات؟ هل الخانق يصلحه بشكل كاف؟
لدي أيضًا مشكلات تتعلق بالأداء مع هذه المكتبة. الرجاء استخدام القائمة الثابتة.
حسنًا يا رفاق ، لدي بعض الأخبار الجيدة: تنفيذ FlatList
هو مجرد مسألة ساعات الآن.
تحقق حاليًا مما إذا كان هناك شيء واضح قد تم كسره وتنفيذ بعض الأشياء ، ومن ثم يمكنك المحاولة ؛-)
ونحن هنا! لقد دفعت للتو فرعًا flatlist
مع جميع الالتزامات ذات الصلة.
لقد اختبرته جيدًا في مشاريع حقيقية ويبدو أنه جيد جدًا بالنسبة لي (على الرغم من أن FlatList
لا يزال مليئًا بالأخطاء). لقد أضفت أيضًا عنصرًا جديدًا activeSlideAlignment
(انظر رقم 3) ، نظرًا لأنه كان من السهل جدًا تنفيذه باستخدام FlatList
.
الآن ها هي الصفقة: __
لتسهيل الاختبار ، يشتمل الفرع على README محدث بالإضافة إلى مثال محدث ؛-)
إنه يعمل بشكل جيد للغاية مع FlatList! شكرا!
ومع ذلك ، إذا كانت مصفوفة البيانات فارغة ، فستظهر الخطأ scrollToIndex out of range: 0 vs -1
حيث 0
هو فهرس الشريحة الحالية.
نتطلع إلى الإفراج!
شكرًا لملاحظة هذه المشكلةmazing!
لا أقوم أبدًا بتهيئة الدوارات الخاصة بي بينما لم يتم جلب البيانات ، ولهذا السبب أميل إلى التغاضي عن هذا النوع من الخطأ. سأدفع الإصلاح قريبًا.
أهلا!
كيف يمكنني تثبيت إصدار القائمة المسطحة هذا باستخدام npm؟ أود أن أكون فأرًا أبيض صغيرًا لتجربة هذه الميزة :-)
نعم فقط استخدم رابط GitHub بدلاً من الإصدار وأشر إلى فرع القائمة الثابتة باستخدام #
مرحبا jarvisluong ،
قال scerelli كل شيء :-) للحصول على آخر التزام حالي لفرع flatlist
، وما لم أكن مخطئًا ، يمكنك استخدام ما يلي:
"react-native-snap-carousel": "https://github.com/archriss/react-native-snap-carousel#fbdb671"
لا تنس التحقق من الوثائق المحدثة وكذلك دليل الترحيل .
اتطلع لملاحظاتك في المستقبل ؛-)
حتى الآن ، تعمل نسخة FlatList بشكل رائع 👍. الأداء صدم حقا!
شكرا لملاحظاتكjarvisluong! لقد قمت بسحق بعض الأخطاء اليوم ولكن نعم ، يبدو أن التطبيق الجديد يعمل كما هو متوقع.
سأعمل الآن على تنفيذ وضع الحلقة المناسبة. إذا لم يتم الإبلاغ عن أي مشكلة كبيرة منذ ذلك الحين ، فمن المحتمل أن يكون الوقت مناسبًا لإصدار الإصدار 3.0.0 ؛-)
كان لدي بعض المشاكل في التحديث لرد الفعل الأصلي v0.47.0.
أولاً ، تلقيت أخطاء حول react-native-snap-carousel
، لذا قمت بإلغاء تثبيت react-native-snap-carousel
وقمت بتثبيت [email protected]
وأعدت تثبيت react-native-snap-carousel
. ولكن الآن لا تظهر العناصر في الرف الدائري ، لكني لا أتلقى أي أخطاء.
مرحبًا mazing ،
لقد قمت للتو بتحديث المثال إلى RN v0.47.1 (راجع آخر التزام ) ولم يكن لدي أي مشكلة. هل تمانع في تجربته وإخباري إذا كنت لا تزال تواجه مشاكل؟
أنا آسف - سيئتي! عندما أعدت التثبيت ، نسيت تثبيت فرع القائمة الثابتة ، لذلك لم يتم عرض العناصر ببساطة ، حيث لم يكن لدي سوى خاصية renderItem
، والتي لم تكن مستخدمة في الإصدار القديم.
يبدو أن لدي مشاكل في استخدام
componentDidMount() {
this.props.navigation.setParams({
key: 'value'
});
}
في react-navigation
على الشاشات بـ <Carousel ... />
.
أتلقى الخطأ
mazing هل تمانع في نسخ / لصق أحدث تعليقاتك في إصدار مخصص؟ أعتقد أن الأمر قد يتعلق بإعدادك وليس بتطبيق FlatList
؛-)
تم نشر الإصدار 3.0.0!
التعليق الأكثر فائدة
مرحبًا EdmundMai ، يجب أن أتمكن من العمل عليه هذا الأسبوع أو الأسبوع الذي