在模拟器/设备上/使用或不使用 Chrome 调试时反应本机行为不同
Posted
技术标签:
【中文标题】在模拟器/设备上/使用或不使用 Chrome 调试时反应本机行为不同【英文标题】:React Native behavior different in simulator / on device / with or without Chrome debugging 【发布时间】:2016-02-01 15:41:52 【问题描述】:我正在构建一个 React Native 应用程序(目前仅适用于 ios),我发现了一个非常讨厌的错误,该错误仅在 1.) 在真实设备上运行和 2.) 在没有 Chrome 调试的情况下运行时才会出现。 (哎哟,对吧?)
我将react-native-router-flux 与选项卡一起使用,当我点击加载新选项卡路由的按钮 (Actions.tabRouteName
) 时,屏幕变为空白。正如我所说,它在模拟器中运行良好,并且在我启用 Chrome 调试时在设备上运行良好。
我尝试的其他事情:在另一台设备上运行,重新加载 JS,在 Xcode 中重建应用程序。
在这些不同的运行案例中行为会有所不同的任何原因?
谢谢。
更新:这似乎与动画和路线切换有关。我发布了更多详细信息in this Github issue。我还发现了其他人在调试 in this Github issue 时遇到类似问题这一想法的轶事支持。
【问题讨论】:
【参考方案1】:在这些不同的运行案例中行为会有所不同的任何原因?
这是因为当您在 Chrome 中使用远程调试时,它实际上是在浏览器中运行 RN 应用程序(然后使用 V8 javascript 引擎)并通过 WebSockets 与模拟器(或设备)进行通信。当它在未启用远程调试的情况下运行时,它使用 JavaScript Core。这些环境之间存在许多差异,这些差异可能会导致不一致,因此不要过于依赖仅在启用 JS 调试的情况下运行您的应用程序,它可能会给您带来错误的错误或隐藏实际上会在真实设备上导致问题的错误。
【讨论】:
以上是关于在模拟器/设备上/使用或不使用 Chrome 调试时反应本机行为不同的主要内容,如果未能解决你的问题,请参考以下文章
在 Android(模拟器)上使用 Google Chrome 开发工具