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

- 8 ماه پیش
توسط Ashid Group آپدیت شد
Ashid Group ( 150 تجربه )
8 ماه پیش

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

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

حسام موسوی ( 73384 تجربه )
8 ماه پیش

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

Ashid Group ( 150 تجربه )
8 ماه پیش

بله این کار رو کردم ولی الان یه مشکل دیگه دارم
من توی تابع 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); }

حسام موسوی ( 73384 تجربه )
8 ماه پیش

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

onPress={() => {
 this.deleteImages(index)
  }}
Ashid Group ( 150 تجربه )
8 ماه پیش

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

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

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