на react-native init ProjectName
, основной файл приложения App.js
содержит объявление компонента следующим образом:
const App: () => React$Node = () => {...}
Что значит эта инструкция?
Я имею в виду, я привык к компоненту, определенному как const App = () => {...}
, поэтому я не понимаю, в частности, выражение между ними : () => React$Node
.
Ответы:
Его определение типа от Flow, это означает, что константа App имеет тип function и возвращает ReactNode.
ReactNode является одним из следующих типов:
ReactChild | ReactFragment | ReactPortal | boolean | null | undefined
Это означает, что функция App может вернуть любой допустимый JSX (в реагировать на нативное что-либо из View, Text, .etc), ReactFragment, React.Portal, логический, ноль, неопределенный
Если вы не уверены в знаке доллара, вот ссылка с объяснением. https://www.saltycrane.com/flow-type-cheat-sheet/latest/
Есть отдельные разделы для «приватных» или «магических» типов с символом $ в имени. Смотрите примечание здесь и комментируйте здесь. Обновление: некоторые из этих типов теперь описаны здесь.
Для удобства вы можете думать об этом , как его
Node
изReact
(думаю о нем , как области видимости / имен)источник
ReactNode
, без$
React$Node
. Можете ли вы помочь мне прояснить этот момент?React$Node
(знак доллара ...), я имею в виду, в Flow doc нет никакой ссылки на этоЭто также тип объявления компонента App как функции, но вы можете изменить его на
Не забудьте удалить оператор Экспорт приложения по умолчанию в последней строке.
источник
React $ Node - это тип, определенный вact.js
источник