activado react-native init ProjectName
, el archivo principal de la aplicación App.js
contiene la declaración de un componente de la siguiente manera:
const App: () => React$Node = () => {...}
¿Qué significa esta instrucción?
Quiero decir, estoy acostumbrado a un componente definido como const App = () => {...}
, por lo que no entiendo, en particular, la expresión intermedia : () => React$Node
.
javascript
reactjs
react-native
marco
fuente
fuente
Respuestas:
Su definición de tipo de Flow, significa que la aplicación constante es de tipo función y devuelve ReactNode.
ReactNode es uno de estos tipos:
ReactChild | ReactFragment | ReactPortal | boolean | null | undefined
Esto significa que la función App puede devolver, cualquier JSX válido (en reaccionar nativo es cualquier cosa desde Ver, Texto, .etc), ReactFragment, React.Portal, boolean, null, undefined
Si está confundido acerca del signo de dólar, aquí hay un enlace con una explicación. https://www.saltycrane.com/flow-type-cheat-sheet/latest/
Hay secciones separadas para los tipos "privados" o "mágicos" con un $ en el nombre. Vea la nota aquí y comente aquí. Actualización: algunos de estos tipos ahora están documentados aquí.
Para una fácil se puede pensar en él como su
Node
deReact
(pensar en él como el alcance / espacio de nombres)fuente
ReactNode
, sin$
React$Node
. ¿Me pueden ayudar a aclarar este punto?React$Node
(el signo del dólar ...), quiero decir, en Flow doc no hay ninguna referencia a élTambién es un tipo de declaración del componente de la aplicación como función, pero puede cambiarlo a
No olvide eliminar la declaración Exportar aplicación predeterminada en la última línea.
fuente
React $ Node es un tipo definido en react.js
fuente