我正在构建一个React Native应用程序(当前仅适用于iOS),并且发现了一个非常讨厌的错误,该错误仅在1.)在实际设备上运行以及2.)在没有Chrome调试的情况下运行时才会显现。 (哦,对吧?)

我正在使用带有选项卡的react-native-router-flux,当我点击加载新选项卡路线的按钮(Actions.tabRouteName)时,屏幕变为空白。如我所说,当启用Chrome调试时,它在模拟器中以及设备上均能正常工作。

我尝试过的其他方法:在另一台设备上运行,重新加载JS,在Xcode中重建应用程序。

在这些不同的运行情况下,行为有什么原因会有所不同吗?

谢谢你。

更新:这似乎与动画和路线切换有关。我发布了更多详细信息in this Github issue。我还发现了其他人在调试in this Github issue时遇到类似问题的想法的轶事支持。

最佳答案



这是因为当您在Chrome中使用远程调试时,它实际上在浏览器中运行RN应用(然后使用V8 JavaScript引擎),并通过WebSockets与模拟器(或设备)进行通信。在未启用远程调试的情况下运行时,它将使用JavaScript Core。这些环境之间存在许多差异,并且这些差异可能导致不一致,因此不要仅依赖于启用JS调试就运行应用程序,它可能会给您带来错误错误或隐藏实际上会在实际设备上引起问题的错误。

10-05 20:29
查看更多