React Native获取设备IP失败,疑配置问题求排查
排查方案
结合expo-network的常见使用问题,从以下几个方向排查:
版本兼容性检查
打开项目根目录的package.json,确认expo-network版本与当前Expo SDK版本匹配。不同SDK版本对应依赖版本不同,执行npx expo install expo-network可自动安装适配当前SDK的版本,避免版本不兼容导致的API调用错误。API返回字段修正
部分Expo SDK版本中,Network.getIpAddressAsync()的返回字段并非myIP,而是ipAddress。修改代码中的解构逻辑,或者先打印返回值确认字段:useEffect(() => { (async () => { const networkResult = await Network.getIpAddressAsync(); console.log('网络接口返回:', networkResult); setIp(networkResult.myIP || networkResult.ipAddress || '获取失败'); })(); }, []);Bare React Native项目额外配置
如果你是裸项目(非Managed Expo),安装expo-network后需要完成iOS端的依赖安装:npx pod-install iosAndroid端需确保
android/build.gradle中minSdkVersion不低于21。测试环境验证
优先在真实设备或Expo Go中测试,模拟器可能存在网络环境异常导致IP获取失败;同时确保设备已连接有效网络(Wi-Fi/移动数据)。
内容的提问来源于stack exchange,提问作者Javier Coque
相关产品推荐
相关产品推荐

