on enthält react-native init ProjectName
die Haupt-App-Datei App.js
die Deklaration einer Komponente auf folgende Weise:
const App: () => React$Node = () => {...}
Was bedeutet diese Anweisung?
Ich bin an Komponenten gewöhnt, die als definiert sind const App = () => {...}
, daher verstehe ich insbesondere den Ausdruck dazwischen nicht : () => React$Node
.
javascript
reactjs
react-native
marco
quelle
quelle
Antworten:
Die Typdefinition von Flow bedeutet, dass die Konstante App vom Typ function ist und ReactNode zurückgibt.
ReactNode ist einer dieser Typen:
ReactChild | ReactFragment | ReactPortal | boolean | null | undefined
Dies bedeutet, dass die Funktion App jedes gültige JSX (in React Native ist alles aus View, Text, .etc), ReactFragment, React.Portal, Boolean, Null, Undefined zurückgeben kann
Wenn Sie über das Dollarzeichen verwirrt sind, finden Sie hier einen Link mit Erläuterungen. https://www.saltycrane.com/flow-type-cheat-sheet/latest/
Es gibt separate Abschnitte für "private" oder "magische" Typen mit einem $ im Namen. Siehe den Hinweis hier und Kommentar hier. Update: Einige dieser Typen sind jetzt hier dokumentiert.
Für einfach können Sie es als sein
Node
vonReact
vorstellen (stellen Sie es sich als Bereich / Namespace vor)quelle
ReactNode
, ohne$
React$Node
. Können Sie mir helfen, diesen Punkt zu klären?React$Node
(das Dollarzeichen ...), ich meine, in Flow Doc gibt es keinen Hinweis daraufReact $ Node ist ein in react.js definierter Typ
quelle
Es ist auch eine Art Deklaration der App-Komponente als Funktion, aber Sie können sie in ändern
Vergessen Sie nicht, die Anweisung zu entfernen. Exportieren Sie die Standard-App in der letzten Zeile.
quelle