You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发时如何让Expo版React Native自动获取本地服务器IP连接REST API

在Expo React Native应用中自动获取本地服务器IP地址

方法1:利用Expo内置的Constants API

Expo官方提供的expo-constants库可以直接获取开发环境下Expo服务器的IP,这是最便捷的方案:

  • 先安装依赖:
    npx expo install expo-constants
    
  • 代码实现:
    import Constants from 'expo-constants';
    
    const getApiBaseUrl = () => {
      // 仅在开发环境自动获取IP
      if (__DEV__) {
        // 从Expo配置中提取服务器IP(hostUri格式为 [ip]:[port])
        const localServerIp = Constants.expoConfig?.hostUri?.split(':')[0];
        // 替换为你的API服务端口
        return `http://${localServerIp}:3000`;
      }
      // 生产环境返回正式API地址
      return 'https://your-production-api-domain.com';
    };
    
  • 说明:Constants.expoConfig.hostUri是Expo自动注入的服务器地址,能动态适配你的本地IP变化,无需手动修改配置。

方法2:通过网络API获取设备局域网IP(备用)

如果第一种方案不满足需求,可以用expo-network获取设备当前的局域网IP,前提是API服务器和设备在同一局域网内:

  • 安装依赖:
    npx expo install expo-network
    
  • 代码实现:
    import * as Network from 'expo-network';
    
    const getApiBaseUrl = async () => {
      if (__DEV__) {
        const deviceIp = await Network.getIpAddressAsync();
        return `http://${deviceIp}:3000`;
      }
      return 'https://your-production-api-domain.com';
    };
    

实用提示

  • 用__DEV__全局变量自动区分开发/生产环境,避免手动切换地址的麻烦。
  • 若使用Android模拟器,也可以直接用10.0.2.2(模拟器映射到主机的localhost),但自动获取IP的方式更适合真机测试场景。

内容的提问来源于stack exchange,提问作者mikera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:52:47