أحمد عبد الله2 نشر 17 أغسطس 2021 أرسل تقرير نشر 17 أغسطس 2021 كيف اعالج هده المشكلة ERROR Invariant Violation: Changing onViewableItemsChanged on the fly is not supported هذا هو الكود <Animated2.FlatList horizontal data={ads} keyExtractor={item => item.id.toString()} // onViewableItemsChanged={({viewableItems, changed}) => { // console.log(viewableItems[0].index); // setSelectedIndex(viewableItems[0].index); // }} onViewableItemsChanged={onViewableItemsChanged} viewabilityConfig={viewabilityConfig} style={{backgroundColor: 'red'}} contentContainerStyle={{justifyContent: 'center'}} onScrollEndDrag={() => goToSelectedLocation(selectedIndex)} renderItem={({item, index}) => { setSelectedIndex(index); console.log(index); return ( <MapCard onPress={() => goToSelectedLocation(index)} style={{margin: 4}} title={item.title} image={item.image} price={item.price} /> ); }} /> 1 اقتباس
1 Hassan Hedr نشر 17 أغسطس 2021 أرسل تقرير نشر 17 أغسطس 2021 يبدو ان التابع onViewableItemsChanged الذي تمرره للمكون غير ثابت ويعاد تعريفه في كل مرة يتم استدعاء المكون const onViewableItemsChanged = function() {...} // يعاد تعريف التابع في كل مرة يجب تمرير تابع بمؤشر ثابت، يمكنك استخدام useCallback لهذا الغرض حيث يتم تعريف التابع فقط اول مرة يستدعى المكون // تابع يعرف بالمرة الأولى فقط const onViewableItemsChanged = useCallback((viewableItems) => { // يستدعى التابع هنا عند تغير العناصر المرئية },[]); 1 اقتباس
السؤال
أحمد عبد الله2
كيف اعالج هده المشكلة ERROR Invariant Violation: Changing onViewableItemsChanged on the fly is not supported
هذا هو الكود
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.