React Native开发从最初的编译App再安装到手机上调试的工作流,进化成了由Expo带来的类似前端的调试工作流,大大加快了开发的速度。现在无论是create-react-native-app(以下简称CRNA)还是Expo的XDE都是同样的给你一个链接/二维码,然后用手机Expo App输入/扫一扫,就可实时预览和热更新App了。
不过我遇到一个诡异的问题,明明在同一个网络中,Expo App就是连接不上。
经过本人仔细排查、认真分析、多方查阅(省略一万字)……发现是:Expo/CRNA对于电脑上多个网络不会进行挑选,而是直接无脑选择第一个,如果你的第一个网络不对路,例如什么VMware弄的网络啦,当然万年连不上了……
很显然正在使用的网络是第四个WLAN的
但是CRNA直接使用第一个VMware的62
有两种解决方法:
-
设置REACT_NATIVE_PACKAGER_HOSTNAME环境变量,Windows下cmd运行
set REACT_NATIVE_PACKAGER_HOSTNAME=${custom-ip}
。对于我的网络,就是set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.0.142
。注意powershell不可以,他们的set命令语法不同。 - 修改网络优先级,Win10之前,控制面板>网络连接页面>菜单栏>高级>高级设置。Win10可能需要修改接口跃点数
此外,可能有在虚拟机中使用Expo的需求。对于VMware,只需要将网络设置为桥接模式,就可以啦
总之只要保证手机和给的链接是同一网段就可以了。我的就是192.168.0网段
是时候学一波计算机网络了?
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。