我不熟悉React native的应用程序开发.在使用命令react-native init appname创建项目时,index.js文件也会在项目文件夹中创建.今天,我了解到有一种比安装android emulator更好的方法来测试react-native 项目,这就是Expo.要创建expo 项目,我需要使用create-react-native-app appname命令创建react-native 项目.但是,使用这种方式创建项目时,不会创建index.js文件.尽管我手动创建了index.js文件,但它并没有正常工作.

还有一个问题:App.jsindex.js的目标是什么?

推荐答案

React Native: (react-native init)

一点历史.在React Native的早期版本中,iOS和Android需要单独的index.js个文件.App.js本应包含应用程序的顶级cross platform代码.然后index.ios.jsindex.android.js将从App.js导入跨平台代码,并将其注册/链接到底层本机模块.这允许您将顶级跨平台代码放在一个文件中,同时将顶级平台特定代码放在其他文件中.这index.*.js个文件是将Javascript连接到本地Android或iOS代码的连接器.

随着React Native逐渐删除特定于平台的索引文件,他们保留了将顶级Javascript放入App.js并使用index.js将代码连接到本机模块的范例.

Bottom Line

实际上,不要碰index.js.在你的App.js级修改中.

Expo: (create-react-native-app)

expo 的运作方式与美国本土稍有不同.你会注意到,expo 项目并不包含iosandroid个目录.这是因为没有与expo 项目相关的本机代码.所有本机代码都包含在Expo SDK中.因为没有本地代码连接到Javascript,所以不需要index.js文件.

Bottom Line

在expo 项目中,你不应该需要index.js个文件.如果你的expo 项目不起作用,可能还有另一个问题需要解决.

React-native相关问答推荐

Reaction-原生NavBottom设计背景

错误:图片:找不到 ID 为1的assets资源 .请判断图像源或打包器

在 React 中使用 Lodash debounce 来防止在用户输入时请求数据

警告:API 'variant.getMergeAssets()' 已过时 / Android Studio 3.3

react-native StyleSheet 属性和选项列表

如何在StackNavigator 中实现自定义标题图标?

'React native run android' 在模拟器中启动应用程序后立即停止

Invariant Violation:requireNativeComponent: "RNCWebView" was not found in the UIManager

React Native 上传到 S3 存储空间

submit提交后如何让 React Native TextInput 保持焦点?

React-native 解码 base64 编码字符串

修复错误:路由 'Home' 的组件必须是 React 组件

api.get(...).then(...).catch(...).finally 不是函数

使用 create-react-native-app 创建了一个应用程序,如何将其发布到 Google Play store ?

React Native with Typescript and Jest 在 0.57 更新后被 destruct :Couldn't find preset "module:metro-react-native-babel-preset" relative to directory

props验证中缺少 React Navigation 'navigation'

React-native:图像未显示在 android 设备中,但在模拟器中完美显示

React Native Navigation 组件路由问题

是否可以将 Material UI 库与 React Native 一起使用?

如何将 React-Native 元素集成到 Android-Studio?