Typescript: TSX: Tidak dapat menggunakan komponen yang disimpan dalam variabel

Dibuat pada 12 Jan 2016  ·  3Komentar  ·  Sumber: microsoft/TypeScript

Repro

Misalkan saya memiliki komponen bernama MyComponent .

Menggunakan MyComponent seperti ini berfungsi:

render() {
  return <MyComponent />;
}

tetapi menyimpan MyComponent dalam variabel dan kemudian mencoba menggunakannya tidak:

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

Ini menghasilkan kesalahan berikut:

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

Solusi

Alih-alih menggunakan TSX, gunakan React.createElement :

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

Komentar yang paling membantu

anAlias adalah elemen JSX intrinsik karena dimulai dengan huruf kecil . Elemen intrinsik dicari di antarmuka JSX.IntrinsicElements dan dalam kasus Anda mungkin tidak memiliki anggota anAlias . Coba buat huruf besar sehingga akan diperlakukan sebagai elemen berbasis nilai .

Semua 3 komentar

anAlias adalah elemen JSX intrinsik karena dimulai dengan huruf kecil . Elemen intrinsik dicari di antarmuka JSX.IntrinsicElements dan dalam kasus Anda mungkin tidak memiliki anggota anAlias . Coba buat huruf besar sehingga akan diperlakukan sebagai elemen berbasis nilai .

Vlad menutupinya -- ini adalah perilaku yang sama yang akan Anda lihat dengan trafo JSX biasa (pengidentifikasi huruf kecil diperlakukan sama dengan div atau span )

Terima kasih. Saya tidak menyadari perbedaan antara elemen intrinsik dan elemen berbasis nilai dan saya tidak tahu bahwa casing huruf pertama signifikan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

Roam-Cooper picture Roam-Cooper  ·  3Komentar

bgrieder picture bgrieder  ·  3Komentar

manekinekko picture manekinekko  ·  3Komentar

uber5001 picture uber5001  ·  3Komentar

jbondc picture jbondc  ·  3Komentar