این bind بیرون از state قرار میگیره؟ میتونه داخل 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 مشکل رو حل بکنی