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