em react-native init ProjectName
, o arquivo principal do aplicativo App.js
contém a declaração de um componente da seguinte maneira:
const App: () => React$Node = () => {...}
O que significa essa instrução?
Quero dizer, estou acostumado a componentes definidos como const App = () => {...}
, então não entendo, em particular, a expressão intermediária : () => React$Node
.
javascript
reactjs
react-native
marco
fonte
fonte
Respostas:
Sua definição de tipo do Flow, significa que App constante é da função type e retorna ReactNode.
ReactNode é um desses tipos:
ReactChild | ReactFragment | ReactPortal | boolean | null | undefined
Isso significa que a função App pode retornar, qualquer JSX válido (em reagir nativo é qualquer coisa de View, Text, .etc), ReactFragment, React.Portal, booleano, nulo, indefinido
Se você está confuso sobre o cifrão, aqui está um link com a explicação. https://www.saltycrane.com/flow-type-cheat-sheet/latest/
Existem seções separadas para os tipos "privado" ou "mágico" com um $ no nome. Veja a nota aqui e comente aqui. Atualização: alguns desses tipos agora estão documentados aqui.
Para facilitar, você pode pensar nisso como sendo de
Node
origemReact
(pense nisso como escopo / espaço para nome)fonte
ReactNode
$
React$Node
. Você pode me ajudar a esclarecer esse ponto?React$Node
(o cifrão ...), quer dizer, em Fluxo doc não há qualquer referência a eleReact $ Node é um tipo definido em react.js
fonte
Também é um tipo de declaração do componente App como uma função, mas você pode alterá-lo para
Não se esqueça de remover a instrução Exportar aplicativo padrão na última linha.
fonte