Adam Ebrahim نشر 13 مارس 2021 أرسل تقرير نشر 13 مارس 2021 أتابع دورة React ويقوم المدرب في بعض الأحيان بتمرير props إلى دالة super داخل التابع constructor في مكون من نوع class component بهذا الشكل: // أحيانًا بهذه الطريقة class TestComponent extends React.Component { constructor(props) { super(); } } // وأحبانًا أخرى بالطريقة التالية class TestComponent extends React.Component { constructor(props) { super(props); } } ما الفرق بين الطريقتين؟ وهل ستسبب مشكلة إن إستخدمت طريقة مكان الأخرى؟ اقتباس
0 Salah Eddin Beriani2 نشر 13 مارس 2021 أرسل تقرير نشر 13 مارس 2021 الفرق الوحيد بينهما هو أنك في حالة تمرير props الى super سوف تتمكن من الدخول الى this.props داخل ال constructor نفسها class MyComponent extends React.Component { constructor(props) { super(props) console.log(this.props) //يمكنك قراءتها console.log(props) //يمكنك قراءتها } } وفي حالة لم تقم بتمرير props الى super لا يمكنك الدخول الى this.props داخل ال constructor class MyComponent extends React.Component { constructor(props) { super(props) console.log(this.props) //لا يمكنك قراءتها console.log(props) //يمكنك قراءتها } } لكن هذا لن يؤثر على قدرتك للدخول الى this.props خارج ال constructor 1 اقتباس
0 سامح أشرف نشر 13 مارس 2021 أرسل تقرير نشر 13 مارس 2021 نستخدم الطريقة الثانية في حالة واحدة فقط وهي أن كمن بحاجة إلى إستخدام this.props في التابع constructor class TestComponent extends React.Component { constructor(props) { super(props) // السطر التالي سيعمل بشكل صحيح console.log(this.props) } } وفي حالة إستخدام الطريقة الأولى ستكون النتيجة undefined: class TestComponent extends React.Component { constructor(props) { super() console.log(this.props) // Output: undefined // مازال بإمكانك إستخدام props console.log(props) } } لاحظ إن تمرير props إلى الدالة super أو عدم تمريرها لن يؤثر على إستخدام this.props في باقي التوابع مثل render أو كل توابع Lifecycle hooks، بمعنى أنها ستعمل بدون مشكلة في كلتا الحالتين. كما أن موقع React الرسمي ينصح بتمرير props دائمًا في المكونات من نوع Class: اقتباس Class components should always call the base constructor with props بالتوفيق. 2 اقتباس
السؤال
Adam Ebrahim
أتابع دورة React ويقوم المدرب في بعض الأحيان بتمرير props إلى دالة super داخل التابع constructor في مكون من نوع class component بهذا الشكل:
ما الفرق بين الطريقتين؟ وهل ستسبب مشكلة إن إستخدمت طريقة مكان الأخرى؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.