鍍金池/ 問(wèn)答/HTML5  HTML/ 關(guān)于react-native入口文件寫法

關(guān)于react-native入口文件寫法

使用react-native init 一個(gè)項(xiàng)目后,它的入口文件是這樣寫的

import { AppRegistry } from 'react-native';
import App from './App';

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

這樣是正常的,也符合我對(duì)react的理解。但是今天在一個(gè)項(xiàng)目里面看到居然可以這樣寫:

import App from './src/app';

const app = new App();

app.js里面導(dǎo)出不是react組件,而是一個(gè)普通的函數(shù),項(xiàng)目地址

不明白這塊為什么可以這樣寫,new App()不是變成了一個(gè)對(duì)象嘛。

回答
編輯回答
茍活

src/screens/index.js文件下,有一個(gè)叫做registerScreens的函數(shù),這個(gè)函數(shù)調(diào)用了Navigation.registerComponent, 而Navigation.registerComponent,會(huì)返回一個(gè)generationWrapper,并且會(huì)執(zhí)行AppRegistry.registerComponent來(lái)注冊(cè)你的screen組件,所以new App時(shí),其實(shí)是執(zhí)行了AppRegistry.registerComponent的。

相關(guān)源碼: registerScreen

2018年7月29日 07:19
編輯回答
疚幼

建議翻翻歷史版本,應(yīng)該是rn同樣支持這種函數(shù)式的調(diào)用的
startApp這個(gè)鉤子函數(shù)

2017年4月22日 07:10