假设我有一个名为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
。 尝试将其设为大写,以便将其视为基于值的元素。