Typescript: TSX: Kann eine in einer Variablen gespeicherte Komponente nicht verwenden

Erstellt am 12. Jan. 2016  ·  3Kommentare  ·  Quelle: microsoft/TypeScript

Repro

Angenommen, ich habe eine Komponente namens MyComponent .

Verwenden von MyComponent wie folgt:

render() {
  return <MyComponent />;
}

aber MyComponent in einer Variablen zu speichern und dann zu versuchen, sie zu verwenden, funktioniert nicht:

render() {
  var anAlias = MyComponent;
  return <anAlias />;
}

Es führt zu folgendem Fehler:

error TS2339: Property 'anAlias' does not exist on type 'JSX.IntrinsicElements'.

Problemumgehung

Anstatt TSX zu verwenden, verwenden Sie React.createElement :

render() {
  var anAlias = MyComponent;
  return React.createElement(anAlias);
}
By Design

Hilfreichster Kommentar

anAlias ist ein intrinsisches JSX-Element, da es mit einem Kleinbuchstaben beginnt . Intrinsische Elemente werden auf der JSX.IntrinsicElements- Schnittstelle anAlias . Versuchen Sie, es in Großbuchstaben zu schreiben, damit es als wertbasiertes Element behandelt wird .

Alle 3 Kommentare

anAlias ist ein intrinsisches JSX-Element, da es mit einem Kleinbuchstaben beginnt . Intrinsische Elemente werden auf der JSX.IntrinsicElements- Schnittstelle anAlias . Versuchen Sie, es in Großbuchstaben zu schreiben, damit es als wertbasiertes Element behandelt wird .

Vlad hat es behandelt – dies ist das gleiche Verhalten, das Sie mit dem regulären JSX-Transformator sehen würden (Kleinbuchstaben werden genauso behandelt wie div oder span ).

Vielen Dank. Mir war der Unterschied zwischen intrinsischen und wertbasierten Elementen nicht bewusst und ich wusste nicht, dass die Groß-/Kleinschreibung des ersten Buchstabens von Bedeutung war.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

manekinekko picture manekinekko  ·  3Kommentare

MartynasZilinskas picture MartynasZilinskas  ·  3Kommentare

weswigham picture weswigham  ·  3Kommentare

kyasbal-1994 picture kyasbal-1994  ·  3Kommentare

uber5001 picture uber5001  ·  3Kommentare