猿问

关于react-native入口文件写法

使用react-native init 一个项目后,它的入口文件是这样写的


import { AppRegistry } from 'react-native';

import App from './App';


AppRegistry.registerComponent('app', () => App);

这样是正常的,也符合我对react的理解。但是今天在一个项目里面看到居然可以这样写:


import App from './src/app';


const app = new App();

app.js里面导出不是react组件,而是一个普通的函数,项目地址

不明白这块为什么可以这样写,new App()不是变成了一个对象嘛。


天涯尽头无女友
浏览 944回答 2
2回答

慕标5832272

src/screens/index.js文件下,有一个叫做registerScreens的函数,这个函数调用了Navigation.registerComponent, 而Navigation.registerComponent,会返回一个generationWrapper,并且会执行AppRegistry.registerComponent来注册你的screen组件,所以new App时,其实是执行了AppRegistry.registerComponent的。相关源码: registerScreen

九州编程

建议翻翻历史版本,应该是rn同样支持这种函数式的调用的startApp这个钩子函数
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答