react-native - 使用 expo 弹出应用程序后的问题
问题描述
启动命令后npm run eject
,我按照以下步骤操作:
- 裸露:我想要一个裸露的 React Native 项目。
- 我设置了应用程序和 xcode 项目的名称
命令返回此消息Ejected successfully!
之后,进入ios
生成的文件夹,我运行命令pod install
,结果是Pod installation complete!
执行此过程后,我尝试使用ios
模拟器运行应用程序,但出现此错误:
Expo SDK 需要 Expo 才能运行。似乎本机 Expo 模块不可用,并且此代码未在 Expo 上运行。访问https://docs.expo.io了解有关开发 Expo 项目的更多信息。
请注意,在执行npm run eject
命令之前,应用程序可以正常工作。
这是package.json
之前的eject
:
{
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
},
"dependencies": {
"@apollo/react-hooks": "^3.0.1",
"apollo-boost": "^0.4.4",
"apollo-cache-inmemory": "^1.6.3",
"apollo-client": "^2.6.4",
"apollo-link-http": "^1.5.15",
"expo": "^34.0.1",
"expo-font": "^6.0.1",
"graphql-tag": "^2.10.1",
"metro-react-native-babel-preset": "^0.56.0",
"prop-types": "^15.7.2",
"react": "16.8.3",
"react-apollo": "^3.0.1",
"react-dom": "^16.8.6",
"react-native": "https://github.com/expo/react-native/archive/sdk-34.0.0.tar.gz",
"react-native-camera": "^3.3.2",
"react-native-camera-kit": "^8.0.1",
"react-native-circle-checkbox": "^0.1.6",
"react-native-elements": "^1.1.0",
"react-native-gesture-handler": "^1.3.0",
"react-native-image-picker": "^1.1.0",
"react-native-modal-datetime-picker": "^7.5.0",
"react-native-signature-pad": "^0.1.0",
"react-native-vector-icons": "^6.6.0",
"react-native-web": "^0.11.4",
"react-native-webview": "^5.12.1",
"react-navigation": "^3.12.1",
"tcomb-form-native": "^0.6.20"
},
"devDependencies": {
"babel-preset-expo": "^6.0.0"
},
"private": true
}
之后变成eject
:package.json
{
"scripts": {
"start": "react-native start",
"android": "react-native run-android",
"ios": "react-native run-ios",
"web": "expo start --web"
},
"dependencies": {
"expo": "^34.0.1",
"react": "16.8.3",
"react-dom": "^16.8.6",
"react-native": "0.59.10",
"react-native-gesture-handler": "^1.3.0",
"react-native-reanimated": "~1.1.0",
"react-native-screens": "1.0.0-alpha.22",
"react-native-unimodules": "~0.5.2",
"react-native-web": "^0.11.4",
"@apollo/react-hooks": "^3.0.1",
"apollo-boost": "^0.4.4",
"apollo-cache-inmemory": "^1.6.3",
"apollo-client": "^2.6.4",
"apollo-link-http": "^1.5.15",
"expo-font": "^6.0.1",
"graphql-tag": "^2.10.1",
"metro-react-native-babel-preset": "^0.56.0",
"prop-types": "^15.7.2",
"react-apollo": "^3.0.1",
"react-native-camera": "^3.3.2",
"react-native-camera-kit": "^8.0.1",
"react-native-circle-checkbox": "^0.1.6",
"react-native-elements": "^1.1.0",
"react-native-image-picker": "^1.1.0",
"react-native-modal-datetime-picker": "^7.5.0",
"react-native-signature-pad": "^0.1.0",
"react-native-vector-icons": "^6.6.0",
"react-native-webview": "^5.12.1",
"react-navigation": "^3.12.1",
"tcomb-form-native": "^0.6.20"
},
"devDependencies": {
"babel-preset-expo": "^6.0.0"
},
"private": true
}
解决方案
您遇到的问题是您在 App.js 中有一个来自“expo”包的 AppLoading,没有 que ExpoSDK 就没有支持。您必须删除它并将字体放入 componentDidMount()
推荐阅读
- eclipse-hono - 在 Eclipse hono 中向设备发送命令
- c++ - 将位移动到掩码中给定位置的快速方法
- r - 如何修复图形上回归线方程的标签(使用ggplot2)
- bash - 使用 Bash 的 3 个不同循环之间的数组相关性
- javascript - 在 Node js 中加速 AES 解密
- html - 表单的 CSS 网格系统
- spring-boot - Spring Boot 2 和 Keycloak 授权:实现一个简单的 REST API
- c++ - OpenGL - 清除颜色异常
- sql - SQL Server:计算运行总计的重复值之间的 PnL
- c# - 正则表达式不匹配所有外来字符