جوابشو پیدا کردم ،
دلیلش اینه که توی setter میاد به آدرس حافظه ی متغیری که بهش پاس داده شده نگاه میکنه - نه صرفا به مقدار متغیر - اگر اون آدرس عوض بشه - اون موقع رندر میکنه ، واسه همین باید بیایم یه متغیر جدید پاس بدیم و صرفا ابجکت قبلی رو آپدیت نکنیم ، توی آرایه هم به همین شکله و با push کردن کار نمیکنه ،
چاره کار فعلا همون destructuring هست که پرفورمنس رو میاره پایین ولی فعلا راه دیگه ای نیست مگر اینکه ری اکت اپدیت جدید بده
bamdadmeh
درود
بجای استفاده از ... , اگر object را آپدیت کنیم ، مثلا از Object.assign استفاده کنیم، کامپوننت دوباره رندر نمیشه ، علت چی میتونه باشه ؟
علی شیخ
10 ماه پیش
سلام وقت بخیر.
تست نکردم و اطلاعی ندارم اما نحوه استفاده به ایک شکل هست و باید رندر اتفاق بیفته
bamdadmeh
10 ماه پیش
جوابشو پیدا کردم ،
دلیلش اینه که توی setter میاد به آدرس حافظه ی متغیری که بهش پاس داده شده نگاه میکنه - نه صرفا به مقدار متغیر - اگر اون آدرس عوض بشه - اون موقع رندر میکنه ، واسه همین باید بیایم یه متغیر جدید پاس بدیم و صرفا ابجکت قبلی رو آپدیت نکنیم ، توی آرایه هم به همین شکله و با push کردن کار نمیکنه ،
چاره کار فعلا همون destructuring هست که پرفورمنس رو میاره پایین ولی فعلا راه دیگه ای نیست مگر اینکه ری اکت اپدیت جدید بده
علی شیخ
10 ماه پیش
ممنون از ارسال جستجویی که داشتید.