react-native:在开发过程中同时在两个设备上进行热加载

Chr*_*eid 5 react-native

我正在为Android和iOS同时开发一个应用程序,我有两部手机在我面前.我在它们上面都启用了热负载,但似乎只有我触摸的最后一个手机才会热负载而另一个手机保持不活动状态,直到我摇动它并再次选择"重新加载js".

这是预期的行为吗?

Ada*_*ski 9

我也遇到过这个问题.您可以通过在两个单独的端口上运行打包程序来解决它.在我的package.json身上:

"scripts": {
  "start": "node node_modules/react-native/local-cli/cli.js start ",
  "port-8082": "node node_modules/react-native/local-cli/cli.js start --port 8082",
},
Run Code Online (Sandbox Code Playgroud)

在我的iOS启动代码中,AppDelegate我将端口更改为8082,例如

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8082/index.ios.bundle?platform=ios&dev=true"];
Run Code Online (Sandbox Code Playgroud)

那么我npm start在一个终端会话(在默认端口8081上启动)和npm run port-8082另一个会话中运行.然后8081将为Android设备和8082 iOS设备提供服务,您可以同时在两个设备上使用热重新加载.

编辑:随着react-native文件架构的更改,AppDelegate代码现在是:

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8082/index.bundle?platform=ios&dev=true"];
Run Code Online (Sandbox Code Playgroud)