افترض أن لدي مكونًا يسمى MyComponent
.
باستخدام MyComponent
مثل هذا يعمل:
render() {
return <MyComponent />;
}
لكن تخزين MyComponent
في متغير ثم محاولة استخدامه لا:
render() {
var anAlias = MyComponent;
return <anAlias />;
}
ينتج عن الخطأ التالي:
error TS2339: Property 'anAlias' does not exist on type 'JSX.IntrinsicElements'.
بدلاً من استخدام TSX ، استخدم React.createElement
:
render() {
var anAlias = MyComponent;
return React.createElement(anAlias);
}
anAlias
عنصر JSX جوهري لأنه يبدأ بحرف صغير . يتم البحث عن العناصر الجوهرية على واجهة JSX.IntrinsicElements وفي حالتك من المفترض أنها لا تحتوي على العضو anAlias
. حاول جعلها كبيرة بحيث يتم التعامل معها كعنصر قائم على القيمة .
قام فلاد بتغطيته - هذا هو نفس السلوك الذي تراه مع محول JSX العادي (يتم التعامل مع معرفات الأحرف الصغيرة مثل div
أو span
)
شكرا. لم أكن على دراية بالتمييز بين العناصر الجوهرية والعناصر القائمة على القيمة ولم أكن أعرف أن غلاف الحرف الأول كان مهمًا.
التعليق الأكثر فائدة
anAlias
عنصر JSX جوهري لأنه يبدأ بحرف صغير . يتم البحث عن العناصر الجوهرية على واجهة JSX.IntrinsicElements وفي حالتك من المفترض أنها لا تحتوي على العضوanAlias
. حاول جعلها كبيرة بحيث يتم التعامل معها كعنصر قائم على القيمة .