我正在构建一个 React Native 应用程序(目前仅限 iOS),我发现了一个非常严重的错误,该错误仅在 1.) 在真实设备上运行,以及 2.) 在没有 Chrome 调试的情况下运行时才会出现。 (哎哟,对吧?)
我正在使用 react-native-router-flux使用选项卡,当我点击加载新选项卡路由 (Actions.tabRouteName
) 的按钮时,屏幕变为空白。正如我所说,它在模拟器中运行良好,并且在我启用 Chrome 调试时在设备上也运行良好。
我尝试过的其他事情:在另一台设备上运行、重新加载 JS、在 Xcode 中重建应用程序。
在这些不同的运行情况下行为会有所不同的原因是什么?
谢谢。
更新:这似乎与动画和路由切换有关。我发布了更多细节in this Github issue .我还发现了其他人在调试时遇到类似问题的观点的轶事支持 in this Github issue .
最佳答案
Any reason the behavior would be different in these different run cases?
这是因为当你在 Chrome 中使用远程调试时,它实际上是在浏览器中运行 RN 应用程序(然后它使用 V8 JavaScript 引擎)并通过 WebSockets 与模拟器(或设备)通信。当它在没有启用远程调试的情况下运行时,它使用 JavaScript Core。这些环境之间存在许多差异,这些差异可能会导致不一致,因此不要过分依赖仅在启用 JS 调试的情况下运行您的应用程序,它可能会给您错误或隐藏实际上会在真实设备上导致问题的错误。
关于javascript - React Native 行为在模拟器中/在设备上/有或没有 Chrome 调试时不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35134488/