سلام
استاد چه زمانی ما یک متد رو توی constructor
bind می کنیم؟ وقتی بخواییم state رو تغییر بدیم؟
سلام
این موضوع کلا ارتباطی به react و state نداره و برمیگرده به خود زبان JS
زمانی یک تابع رو به صورت رفنس استفاده بکنیم مثل همین موردی که در کامپوننت های react داریم اون تابع مقدار this رو درست تشخصی نمیده و اصطلاحا مقدار this رو فراموش میکنه
مثلا زیر رو اگر توجه کنی موضوع یکمی شفاف تر میشه
const user = {
firstName: 'jone',
lastName: 'doe',
fullName: function () {
return `${this.firstName} ${this.lastName}`;
}
};
const fullName = user.fullName
console.log(fullName()); // The function gets invoked at the global scope
// expected output: undefined undefined
const fullName2 = user.fullName.bind(user);
console.log(fullName2());
// expected output: jone doe
اگرم فعلا باهاش مشکل داری خیلی نمیخواد خودت رو درگیرش بکنی و به مرور موضوع شفاف تر میشه!
هر جایی که دیدی react بهت ارور داد که یک مقداری undefined هست در صورتی که اون رو تعریف کردی، یکی از مواردی که باید بررسی بکنی همین موضوع هست
بیشترین جایی که در react این موضوع دیده میشه زمانی هست که یک تابع رو به عنوان props پاس میدی و داخل اون تابع از this استفاده کردی! در این حالت میتونی با bind مشکل رو حل بکنی