为了账号安全,请及时绑定邮箱和手机立即绑定

const App: () => React$Node = () = 这个指令是什么意思?

const App: () => React$Node = () = 这个指令是什么意思?

慕的地8271018 2021-11-12 15:38:23
on react-native init ProjectName,主应用程序文件App.js以以下方式包含组件的声明:const App: () => React$Node = () => {...}这个指令是什么意思?我的意思是,我习惯于将组件定义为const App = () => {...},所以我不明白,特别是 之间的表达式: () => React$Node。
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

它的类型定义来自 Flow,这意味着常量 App 是函数类型,它返回 ReactNode。

ReactNode 是以下类型之一: ReactChild | ReactFragment | ReactPortal | boolean | null | undefined

这意味着函数 App 可以返回任何有效的 JSX(在 React Native 中,它来自 View、Text、.etc)、ReactFragment、React.Portal、boolean、null、undefined

如果您对美元符号感到困惑,这里有一个解释链接。 https://www.saltycrane.com/flow-type-cheat-sheet/latest/

名称中带有 $ 的“私有”或“魔法”类型有单独的部分。请参阅此处的注释并在此处发表评论。更新:现在这里记录了一些这些类型。

为简单起见,您可以将其视为Node来自React(将其视为范围/命名空间)


查看完整回答
反对 回复 2021-11-12
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

它也是一种将 App 组件声明为函数的类型,但您可以将其更改为


import React, { Component } from 'react';

import { Platform, StyleSheet, Text, View } from 'react-native';


export default class App extends Component {

    render() {

        return (

            <View style={styles.container}>

                <Text style={styles.instructions}>Hello World!</Text>

            </View>

        );

    }

}


const styles = StyleSheet.create({

    container: {

        flex: 1,

        justifyContent: 'center',

        alignItems: 'center',

        backgroundColor: '#F5FCFF'

    },

    instructions: {

        textAlign: 'center',

        color: '#333333',

        marginBottom: 5

    }

});

不要忘记在最后一行删除语句导出默认应用程序。


查看完整回答
反对 回复 2021-11-12
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

React$Node 是 react.js 中定义的类型


declare type React$Node =

  | null

  | boolean

  | number

  | string

  | React$Element<any>

  | React$Portal

  | Iterable<?React$Node>;


查看完整回答
反对 回复 2021-11-12
  • 3 回答
  • 0 关注
  • 702 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号