我正在创建一个反应本机应用程序,我创建的组件之一包含一个属性,该属性通过来自 http 请求的数据填充。
现在,我通过笔记本电脑托管服务器,但我正在使用 Expo 应用程序在手机上测试该应用程序。由于这是两个独立的设备,http://本地主机:3000 http://localhost:3000调用不起作用,因此我无法判断我的组件是否正常工作。
有什么方法可以让我在笔记本电脑上运行服务器并进行设置,以便 Expo 应用程序内的 http 请求到达服务器吗?
您可以使用 Expo 清单在运行时获取 IP 地址:
import Constants from "expo-constants";
const { manifest } = Constants;
const api = (typeof manifest.packagerOpts === `object`) && manifest.packagerOpts.dev
? manifest.debuggerHost.split(`:`).shift().concat(`:3000`)
: `api.example.com`;
这将设置api
常量为开发模式下本地开发机器的地址以及您在生产中使用的任何地址。请注意,通过 App Store / Play Store 部署的应用程序似乎具有 packagerOptsundefined
。这就是为什么我们有额外的typeof
健康)状况。在这种情况下,我们假设它是生产版本。
有关清单的更多信息请参见此处:https://docs.expo.io/versions/latest/workflow/how-expo-works/#expo-development-server https://docs.expo.io/versions/latest/workflow/how-expo-works/#expo-development-server
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)