در React، تغییر دادن مستقیم یک "state" میتونه باعث بشه UI اصلاً آپدیت نشه
مثلاً این کار اشتباهه:
const [user, setUser] = useState({
name: "Fateme"
});
user.name = "Sara";اینجا مقدار "name" تغییر کرده، اما React لزوماً متوجه این تغییر نمیشه
باید یک object جدید بسازی:
setUser({
...user,
name: "Sara"
});📌 دلیلش اینه که React برای تشخیص خیلی از تغییرات، به reference آبجکتها توجه میکنه، نه اینکه تکتک propertyهای داخلشون رو بررسی کنه
یعنی برای React:
oldUser === newUser
اگر "true" باشه، ممکنه نتیجه بگیره که چیزی تغییر نکرده.
🤯 پس در React، گاهی حتی وقتی مقدار داخل یک Object رو تغییر دادی، React میگه: «من چیزی ندیدم.»
#React #JavaScript #Frontend #CodeTrail