Typescript: TSX:不能使用存储在变量中的组件

创建于 2016-01-12  ·  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 。 尝试将其设为大写,以便将其视为基于值的元素

Vlad 涵盖了它——这与您在常规 JSX 转换器中看到的行为相同(小写标识符被视为与divspan

谢谢。 我不知道内在元素和基于价值的元素之间的区别,我不知道第一个字母的大小写很重要。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

siddjain picture siddjain  ·  3评论

blendsdk picture blendsdk  ·  3评论

Roam-Cooper picture Roam-Cooper  ·  3评论

kyasbal-1994 picture kyasbal-1994  ·  3评论

remojansen picture remojansen  ·  3评论