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
がありません。 値ベースの要素として扱われるように、大文字にしてみてください。
Vladはそれをカバーしました-これは通常のJSXトランスフォーマーで見られるのと同じ動作です(小文字の識別子はdiv
またはspan
と同じように扱われます)
ありがとう。 固有の要素と値ベースの要素の違いを認識していなかったし、最初の文字の大文字と小文字が重要であることも知りませんでした。
最も参考になるコメント
anAlias
は、小文字で始まるため、固有のJSX要素です。 組み込み要素はJSX.IntrinsicElementsインターフェースで検索され、あなたの場合、おそらくメンバーanAlias
がありません。 値ベースの要素として扱われるように、大文字にしてみてください。