在模拟器/设备/有或没有Chrome调试的情况下,React Native行为不同

时间:2016-02-01 15:41:53

标签: javascript ios react-native

我正在构建一个React Native应用程序(目前仅限iOS),我发现了一个非常讨厌的错误,只有在1.)在真实设备上运行时才能显示,以及2.)在没有Chrome调试的情况下运行。 (呃,对吧?)

我使用react-native-router-flux标签,当我点按一个加载新标签路线(Actions.tabRouteName)的按钮时,屏幕变为空白。正如我所说,它在模拟器中运行良好,并且在我启用Chrome调试时也可以在设备上运行。

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

在这些不同的运行案例中,行为会有什么不同吗?

谢谢。

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

1 个答案:

答案 0 :(得分:3)

  

在这些不同的运行案例中,行为会有什么不同吗?

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