۲ امیر آرانی
تغییر حالت favorite یک محصول در صفحه اصلی پس از حذف محصول
جامعه فلاتر ایجاد شده در ۳۱ شهریور ۱۴۰۱

سلام. وقت به خیر

در صفحه لیست علاقه مندی‌ها اگر یک محصول رو با long press حذف کنیم باز هم توی صفحه اصلی ایکون مربوط به favorite بودن اون محصول رو تو پر نشون میده و باید برنامه رو مجددا اجرا کنیم تا حالت درست نشون داده بشه.

راهی برای رفع این مشکل هست؟

سلام، وقت شما بخیر

بله؛ راه‌های زیادی براش وجود داره؛ چندتاش روخدمتتون عرض میکنم.

  • یکی اینکه میتونید برای قسمت BottomNavigation از IndexedStack استفاده کنید و همون روش سنتی رو پیاده کنید. همونطور که قبلا بهش اشاره شده در حالت کلی مشکل این روش اینه که هرمرتبه که یکی از tab‌ها انتخاب میشه، ویجت مربوطه اش rebuild میشه که میتونه در این موقعیت کمک کننده باشه.
  • روش دیگه این میتونه باشه که int تعریف کنید که هروقت یک محصول ویژگی favoriteش تغییر کرد، با id اون محصول مقدار دهی بشه. از طرف دیگه باید در ویجت ProductItem، آیکون رو در یک ValueListenableBuilder قرار بدید تا درصورتی که تغییری رخ داد rebuild بشه (میتونید با استفاده از value تاحدودی بهینه اش کنید.).
  • یک راه دیگه استفاده از ChangeNotifier و Consumer هست و اینکه هرجا (که مدنظرتون هست) تغییری ایجاد شد، تابع ()notiftListeners رو فراخوانی کنید (مثالی از اون در پروژه Task List آمده).
  • و...
بهترین پاسخ
یلدا محصلی ۳۱ شهریور ۱۴۰۱، ۱۹:۰۸

تشکر فراوان

امیر آرانی ۳۱ شهریور ۱۴۰۱، ۱۹:۲۴