刚刚下载了最新版本的Expo XDE(2.20.1)并尝试将现有的反应原生项目转换为它。我正好遵循这些steps,当在真实设备上打开Expo客户端中的应用程序时,我收到错误消息:
undefined不是一个对象(评估' nativeVersion.major')
Android和iOS都会出现问题。
似乎expo对react / react-native版本有严格的要求,但遗憾的是,我找不到版本要求列表。
我当前的依赖项(它是最新的)是:
INSERT INTO Contacts ([First], [Last], [Email]], [Status], [Phone])
SELECT e.[First], e.[Last], e.[Email]], e.[Status], e.[Phone]
FROM ExcelImport e
WHERE NOT EXISTS
(SELECT 1 FROM Contacts c WHERE c.[Email] = e.[Email])
那么,这个错误确实来自版本冲突吗?如果是这样,我该如何解决这个问题?
答案 0 :(得分:4)
您的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。
答案 1 :(得分:2)
最简单的方法是从头开始创建一个新的Expo项目,然后复制您的组件。我自己已经做了好几次了,而且比对抗你的边缘条件要容易得多。
答案 2 :(得分:0)
删除您的iOS版本(./app/ios/build
)文件夹并重新构建。