آفلاین
user-avatar

delete کردن item از gridView در react native

3 سال پیش
توسط Ashid Group آپدیت شد
آفلاین
user-avatar
Ashid Group ( 11281 تجربه )
3 سال پیش
تخصص : برنامه نویس

سلام
من از لایبرری react-native-super-grid در کدم استفاده کردم .دیتا رو از سرور میگیرم و فیلد images که شامل یک jsonArray هست و مجموعه ی عکس ها داخلش هست به این صورت :
["images" : ["image1","image2","image3"
value ی این فیلد رو داخل یک state نگه میدارم و اون رو به gridView میدم و الان میخوام با کلیک روی یک آیتم اون رو حذف کنم که میتونه هرکدوم از آیتم ها باشه ، اگه میشه به من کمک کنید

و اگه راه حل دیگه ای برای حل این مشکل دارید (دریافت یکjsonArray شامل مجوعه ی عکس ها ک در یک گریدویو نمایش داده شود و با کلیک روی هر آیتم گرید ویو آن آیتم پاک شود و یک لیست از آیتم هایی دارم که حذف شده ها داخلش نیستن) ممنون میشم کمکم کنید

آفلاین
user-avatar
حسام موسوی ( 382929 تجربه )
3 سال پیش
تخصص : طراح و برنامه نویس

خوب index ایتم مورد نظر داخل آرایه رو پیدا میکنید از ارایه پاکش میکنید و آپدیت میکنید state خودتونو.

آفلاین
user-avatar
Ashid Group ( 11281 تجربه )
3 سال پیش
تخصص : برنامه نویس

بله این کار رو کردم ولی الان یه مشکل دیگه دارم
من توی تابع onPress تگ image به یه تابع اشاره کردم که اون index رو پاک کنه ولی به محض اینکه صفحه بالا میاد اون تابع اجرا میشه و همه ی آیتم ها پاک میشن در صورتی که باید اگه تگ image ، زده شد یا ب اصطلاح press شد اون تابع کار کنه !
<View style={{position: 'absolute'}} > <Image source={require('../../assets/image/close.png')} style={statisticsStyle.icon} onPress={this.deleteImages(index)} /> </View>

deleteImages(index){ this.state.images.splice(index); }

آفلاین
user-avatar
حسام موسوی ( 382929 تجربه )
3 سال پیش
تخصص : طراح و برنامه نویس

لطفا کد ها رو در سه backtike در ابتدا و انتهای خودتون قرار بدید
فک کنم در پیاده سازی onPress مشکل دارید کد زیر رو قرار بدید

onPress={() => {
 this.deleteImages(index)
  }}
آفلاین
user-avatar
Ashid Group ( 11281 تجربه )
3 سال پیش
تخصص : برنامه نویس

ممنون از وقتی که گذاشتید فقط لطف میکنید اگر استفاده از متد onPress و توابع این چنینی که بصورت
{() => ...}
هستند رو در آموزش ها بیشتر توضیح بدید چون مدل های متفاوتی دارند و آدم دچار سردرگمی میشه!

و برای دوستانی که میخونن این تاپیک رو باید بگم بجای تگ image از button استفاده کردم و مشکل حل شد.

برای ارسال پاسخ باید وارد سایت شوید