在模拟器/设备上/有或没有Chrome调试时,React Native行为会有所不同
我正在构建一个React Native应用程序(目前仅限iOS),我发现了一个非常讨厌的错误,只有在1.)在真实设备上运行时才能显示出来,以及2.)在没有Chrome调试的情况下运行。 (呃,对吧?)
我正在使用react-native-router-flux和标签,当我点击一个加载新标签路径的按钮( Actions.tabRouteName
)时,屏幕变为空白。 正如我所说,它在模拟器中工作正常,并且在我启用Chrome调试时在设备上工作正常。
我试过的其他事情:在另一台设备上运行,重新加载JS,在Xcode中重建应用程序。
在这些不同的运行案例中,行为会有什么不同吗?
谢谢。
更新 :这似乎与动画和路由切换有关。 我在这个Github问题上发布了更多细节。 我还发现了其他人在Github问题中遇到调试类似问题的想法。
在这些不同的运行案例中,行为会有什么不同吗?
这是因为当您在Chrome中使用远程调试时,它实际上在浏览器中运行RN应用程序(然后使用V8 JavaScript引擎)并通过WebSockets与模拟器(或设备)通信。 如果在没有启用远程调试的情况下运行,它将使用JavaScript Core。 这些环境之间存在许多差异,这些差异会导致不一致,所以不要仅仅依靠启用JS调试来运行应用程序,它可能会给您带来错误错误或隐藏实际会导致实际设备出现问题的错误。