当我这样做时:
npx react-native init MyTestApp
创建的App.js
文件包括以下行:
const App: () => React$Node = () => {
我熟悉函数的箭头语法,但是
1)App
之后的冒号是什么?
2)React$Node
中的美元符号在做什么? React
已导入,但是我看不到任何名为React$Node
的变量。
答案 0 :(得分:1)
它来自Flow的类型定义,这意味着常量App
是函数类型,它返回ReactNode.
ReactNode是以下类型之一:
ReactChild | ReactFragment | ReactPortal | boolean | null | undefined
这意味着功能App可以返回任何有效的JSX(以本机方式从View,Text,.etc中返回),ReactFragment,React.Portal,布尔值,null,未定义
如果您对美元符号感到困惑,请点击此处,获得解释链接。 https://www.saltycrane.com/flow-type-cheat-sheet/latest/
名称分别为$的“专用”或“魔术”类型有单独的部分。请参阅此处的注释,并在此处进行评论。更新:这些类型现在已在此处记录。
为简便起见,您可以将其视为React中的Node(将其视为作用域/命名空间)
这是卢卡斯给出的最好的解释,请随时提出任何疑问。