final cartItem=successSate.cartResponse.cartItems.firstWhere((element) => element.id==event.cartItemId);
میشه اینو توضیح بدین اصلا متوجه نشدم چه اتفاقی افتاد
هدف حذف محصول از آیتمهای سبد هست. تابع firstWhere روی لیست صدا زده میشه و با توجه به ورودی ش، اولین عنصری که اون شرط در موردش صدق کنه رو برمیگردونه. ما از طریق successState به محصولات موجود در سبد دسترسی داریم و میتونیم با استفاده از id دریافت شده از event اون محصول رو در سبد پیدا کنیم (تابع firstWhere) و اقدامات لازم رو انجام بدیم.
هر قسمتی که واضح نگفتم بفرمایید
یلدا محصلی۱۳ آبان ۱۴۰۱، ۲۰:۵۷
ممنون فقط یه سوال دیگه.. چرا شرط رو اونجور نوشتیم چه جوری میشه شرط و ریترن کرد.. البته سوالم شاید پایه ای و مربوط به دارت باشه
Turaj Mokhtari۱۳ آبان ۱۴۰۱، ۲۱:۰۵
وقتی بدنه ی تابع شما تک خطی باشه، میتونید به صورت expression هم بنویسیدش. درواقع با این کد پایین معادل هستند:
فکر میکنم با alt+enter هم میتونید این تبدیل رو انجام بدید
یلدا محصلی۱۴ آبان ۱۴۰۱، ۰۳:۰۰
ممنون منظورم اون نبود.. متشکرم که وقت گذاشتین
Turaj Mokhtari۱۴ آبان ۱۴۰۱، ۰۳:۴۹
خواهش میکنم. کدوم قسمت منظورتون بود؟
یلدا محصلی۱۴ آبان ۱۴۰۱، ۰۵:۲۱
(element) => element.id==event.cartItemId
ببینید این قسمت داره بولیین برمیگردونه ..بعد چه طور میشه ما کارت ایتم رو میگیریم میریزیم تو cartItem
Turaj Mokhtari۱۴ آبان ۱۴۰۱، ۱۴:۱۳
تابع firstWhere کارت ایتم رو برمیگردونه. به این معنی که به این تابع میگیم در این لیست اولین عنصری رو به ما برگردون که این شرط درموردش صدق کنه.
ضمن اینکه این تابع یک پارامتر اختیاری orElse هم داره که برای این هست که در صورتی که عنصری در لیست نباشه که مقدار اون بولین براش true باشه، با خطا مواجه نشیم.