求问 react-native 新建项目后 const App: () => React$Node = () => 是什么意思

发布于 2022-09-12 03:42:19 字数 125 浏览 14 评论 0

截屏2020-02-20下午10.33.17.png

才开始学习,请教下大家,十分感谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

神经大条 2022-09-19 03:42:19

const App: () => React$Node = () => {/**/}

把加粗的地方单独看就能明白了

const App: () => React$Node = () => {/**/}

// 等价于

// 定义一个类型,这个类型是一个返回React$Node的函数
type TypeApp = () => React$Node; 
// 声明一个 const 变量,类型是 TypeApp,值是一个箭头函数
const App: TypeApp = () => { /**/};
旧时光的容颜 2022-09-19 03:42:19

我不是很清楚这个的作用,不过他是有报错的
现在我的 rn 项目里也没有这个语法,是 0.60 以上的新语法?(因为我的项目还是 0.60 以下,不确定)
还有一个可能是你文件编码的原因,一般的命名里 $ 这个符号不大会在中间的

一般根据官网的流程走下来,我的初始化项目里 APP 这样的:

import React, {Component} from 'react';  
import {Platform, StyleSheet, Text, View} from 'react-native';  
  
const instructions = Platform.select({  
  ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu',  
  android:  
  'Double tap R on your keyboard to reload,\n' +  
  'Shake or press menu button for dev menu',  
});  
  
type Props = {};  
export default class App extends Component<Props> {  
  render() {  
  return (  
     <View style={styles.container}>  
         <Text style={styles.welcome}>Welcome tos  React Native!</Text>  
         <Text style={styles.instructions}>To get started, edit App.js</Text> 
         <Text style={styles.instructions}>{instructions}</Text>  
     </View>  
    );  
  }  
}
懵少女 2022-09-19 03:42:19

这种语法
const App: () => React$Node = () => {
}

就相当于
class App extends React.Component {
render() {
}
}

新的写法省略了写rander方法,但VScode会报错,可以改成老的写法也没问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文