我正在创建一个react-native应用程序,我创建的其中一个组件包含一个属性,该属性通过来自http请求的数据填充.
现在我正在从我的笔记本电脑托管服务器,但是我正在使用Expo应用程序在手机上测试应用程序.由于这些是两个独立的设备,因此http://localhost:3000调用不起作用,因此我无法判断我的组件是否正常工作.
有没有办法在我的笔记本电脑上运行服务器并进行设置,以便来自Expo应用程序的http请求到达服务器?
您可以使用Expo清单在运行时获取IP地址:
import Expo from "expo"; const { manifest } = Expo.Constants; const api = (typeof manifest.packagerOpts === `object`) && manifest.packagerOpts.dev ? manifest.debuggerHost.split(`:`).shift().concat(`:3000`) : `api.example.com`;
这将在开发模式下将api设置为本地开发机器的地址以及您在生产中使用的任何地址.请注意,通过App Store / Play Store部署的应用程序似乎未定义packagerOpts.这就是为什么我们有其他类型的条件.在这种情况下,我们假设它是生产构建.
更多关于清单的信息:https://docs.expo.io/versions/latest/guides/how-expo-works.html#expo-manifest