无法将现有的 React Native 转换为 Expo:错误 nativeVersion.major

Cannot Convert Existing React Native to Expo: error with nativeVersion.major

刚刚下载了最新版本的 Expo XDE(2.20.1) 并尝试将现有的 React Native 项目转换到其中。我完全按照这些 steps,在真实设备上打开 Expo 客户端中的应用程序时,我收到一条错误消息:

undefined is not an object (evaluating 'nativeVersion.major')

Android 和 iOS 都有问题。

好像expo对react/react-native个版本有严格的要求,可惜找不到版本要求列表

我当前的依赖项(非常新)是: "react": "16.0.0", "react-native": "0.49.3"

那么,这个错误真的是版本冲突导致的吗?如果是这样,我该如何解决这个问题?

最简单的方法可能是从头开始创建一个新的 Expo 项目,然后复制您的组件。我自己已经做过好几次了,这比对抗任何影响你的边缘条件要容易得多。

删除您的 iOS 构建 (./app/ios/build) 文件夹并重新构建。

您的 JS 依赖项需要与本机代码匹配。使用基于 React Native 0.48 的 Expo SDK 21,您可以使用(推荐):

"react": "16.0.0-alpha.12",
"react-native": "https://github.com/expo/react-native/archive/sdk-21.0.2.tar.gz",

或:

"react": "16.0.0-alpha.12",
"react-native": "^0.48.4",

更新依赖项时注意版本很重要。即将发布的 React Native 0.49(支持 Expo SDK 22)需要使用 React 16.0.0-beta.5。