pada react-native init ProjectName
, file aplikasi utamaApp.js
berisi deklarasi komponen dengan cara berikut:
const App: () => React$Node = () => {...}
Apa artinya instruksi ini?
Maksudku, aku sudah terbiasa dengan komponen yang didefinisikan const App = () => {...}
, jadi aku tidak mengerti, khususnya, ekspresi di antaranya : () => React$Node
.
javascript
reactjs
react-native
marco
sumber
sumber
Jawaban:
Jenis definisi dari Flow, itu berarti bahwa App konstan adalah fungsi tipe dan mengembalikan ReactNode.
ReactNode adalah salah satu dari jenis ini:
ReactChild | ReactFragment | ReactPortal | boolean | null | undefined
Ini berarti fungsi App dapat mengembalikan, JSX apa pun yang valid (dalam reaksi asli apa saja dari View, Text, .etc), ReactFragment, React.Portal, boolean, null, undefined
Jika Anda bingung tentang tanda dolar, di sini ada tautan dengan penjelasan. https://www.saltycrane.com/flow-type-cheat-sheet/latest/
Ada bagian terpisah untuk jenis "pribadi" atau "ajaib" dengan $ pada namanya. Lihat catatan di sini dan komentari di sini. Pembaruan: Beberapa jenis ini sekarang didokumentasikan di sini.
Untuk memudahkan Anda dapat menganggapnya sebagai
Node
dariReact
(anggap sebagai lingkup / namespace)sumber
ReactNode
, tanpa$
React$Node
. Bisakah Anda membantu saya mengklarifikasi hal ini?React$Node
(tanda dolar ...), maksud saya, dalam Flow doc tidak ada referensi untuk ituBereaksi $ Node adalah jenis yang didefinisikan dalam react.js
sumber
Ini juga merupakan jenis deklarasi komponen Aplikasi sebagai fungsi tetapi Anda dapat mengubahnya
Jangan lupa untuk menghapus pernyataan Ekspor aplikasi default di baris terakhir.
sumber