React Native App with Expo - QR码未加载

React Native App with Expo - QR code not loading

我正在学习本教程:

https://blog.expo.io/building-a-react-native-app-using-expo-and-typescript-part-1-a81b6970bb82

yarn global add create-react-native-app

create-react-native-app my-app-name

cd my-app-name

yarn start

我和我的 phone (Android) 在同一个网络上。没有VPN。我在我的应用程序的根文件夹中。它说 Loading dependency graph, done. 所以我知道它是 运行。

防火墙也为此关闭,这不是超时错误。

当我扫描二维码时:

Something went wrong. Could not load exp://10.0.0.21:19000.

我的问题是什么?

编辑

新错误:Uncaught Error: java.net.ConnectException: Failed to connect to /10.0.0.21.19000

如果您的设备和开发电脑未连接到同一服务器,请尝试在 chrome 中打开调试器,然后 select tunnel

运行 命令

expo start --tunnel 

在我的例子中,我使用了 tunnel 并且 sdk 版本有问题 - 我有 39.0.0,我应该只使用 36、37 或 38 - 也就是说我从 expo 收到的消息,所以我所做的就是进入 app.json 文件,并在 expo 中添加以下行(或者如果已经存在则更改它存在):

"sdkVersion": "38.0.0"

它应该看起来像:

    "expo": {
            "name": "DoneWithIt",
            "slug": "DoneWithIt",
            "sdkVersion": "38.0.0",
            "version": "1.0.0",

    ....
    ....
    }

在dependencies中的package.json文件中,将“expo”和“react-native”中的版本改为38.0.0 :

"dependencies": {
    "expo": "~38.0.0",
    "expo-status-bar": "~1.0.2",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk- 
     38.0.0.tar.gz",
    "react-native-web": "~0.13.12"
  }

然后 运行:

cd yourAppName 
npm start 

它将加载到您的 phone 上。 你可以从这里观看: https://www.youtube.com/watch?v=eS8VULijAZ4

在此视频中,他使用的是 32.0.0,因此请注意更新版本(就我而言,38.0.0 适用于 09/2020)

只需从您的应用程序中删除 node_modules 文件夹,然后 运行 npm install 获取依赖项。

现在运行expo startnpm start,QR码现在将加载。

在节点 v12.18 上。在 package.json 降级 expo 和 react-native 连接器中。 38 个有效,而不是 40 个。

"expo": "~38.0.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-38.0.0.tar.gz",

然后删除 node_modules 并重新安装它们

rm -rf node_modules
npm install

然后 运行 再次:

npm start 

QR 这次应该可以工作了