سلام خدمت استاد گرامی
شاید این سوال باید تو جلسات قبلی پرسیده میشد ولی ذهنم رو مشغول کرده
دو تا سوال داشتم
اولی) اینکه متد super دقیقا توی constructor چه عملی انجام میده؟
دوما) ارور key دریافت میکنم ، ممنون میشم بیشتر توضیخ بدید ، زمانی که حلقه رو روی props میزنیم و Index رو دریافت میکنیم کجا باید این رو به کامپونت بدیم تا ارور برطرف شه.
گفته بودید متوجه نشدم.
سلام
این بحث super برمیگرده به js
در class component چون که از Component ارث بری انجام میشه به یک سری دلایل نیاز هست که constructor والد که در واقع Component رو باید اجرا بکنیم. به همین منظور در js برای فراخوانی constructor والد از super استفاده میکنیم! حالا اینکه چرا نیاز هست constructor والد فراخوانی بشه برمیگرده به نیازمندی هایی که خودreact داره و یکمی مفصل و خارج از بحث این موضوع هست و باید نحوه پیاده سازی اون در react رو بررسی بکنیم
اینم یک مثال در رابطه با super هست که از سایت Mozilla کپی شده
class Rectangle {
constructor(height, width) {
this.name = 'Rectangle';
this.height = height;
this.width = width;
}
sayName() {
console.log('Hi, I am a ', this.name + '.');
}
get area() {
return this.height * this.width;
}
set area(value) {
this._area = value;
}
}
class Square extends Rectangle {
constructor(length) {
this.height; // ReferenceError, super needs to be called first!
// Here, it calls the parent class's constructor with lengths
// provided for the Rectangle's width and height
super(length, length);
// Note: In derived classes, super() must be called before you
// can use 'this'. Leaving this out will cause a reference error.
this.name = 'Square';
}
}
در مورد key در جلسات آینده به صورت مفصل توضیح داده شده و اگر با دیدن اون جلسات باز هم مشکل داشتید لطفا اعلام کنید تا بیشتر در موردش صحبت بکنیم!
ولی خیلی ساده و سریع بخوام توضیح بدم هر زمانی که یک حلقه داشتید که منجر به ایجاد یکسری کامپوننت میشه باید key رو مقدار دهی بکنیم برای اون کامپوننت هایی که در حلقه ایجاد میشن