Typescript: TSX: لا يمكن استخدام مكون مخزن في متغير

تم إنشاؤها على ١٢ يناير ٢٠١٦  ·  3تعليقات  ·  مصدر: microsoft/TypeScript

ريبرو

افترض أن لدي مكونًا يسمى 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);
}
By Design

التعليق الأكثر فائدة

anAlias عنصر JSX جوهري لأنه يبدأ بحرف صغير . يتم البحث عن العناصر الجوهرية على واجهة JSX.IntrinsicElements وفي حالتك من المفترض أنها لا تحتوي على العضو anAlias . حاول جعلها كبيرة بحيث يتم التعامل معها كعنصر قائم على القيمة .

ال 3 كومينتر

anAlias عنصر JSX جوهري لأنه يبدأ بحرف صغير . يتم البحث عن العناصر الجوهرية على واجهة JSX.IntrinsicElements وفي حالتك من المفترض أنها لا تحتوي على العضو anAlias . حاول جعلها كبيرة بحيث يتم التعامل معها كعنصر قائم على القيمة .

قام فلاد بتغطيته - هذا هو نفس السلوك الذي تراه مع محول JSX العادي (يتم التعامل مع معرفات الأحرف الصغيرة مثل div أو span )

شكرا. لم أكن على دراية بالتمييز بين العناصر الجوهرية والعناصر القائمة على القيمة ولم أكن أعرف أن غلاف الحرف الأول كان مهمًا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

MartynasZilinskas picture MartynasZilinskas  ·  3تعليقات

siddjain picture siddjain  ·  3تعليقات

Zlatkovsky picture Zlatkovsky  ·  3تعليقات

blendsdk picture blendsdk  ·  3تعليقات

wmaurer picture wmaurer  ·  3تعليقات