React-Native:除非单击屏幕,否则应用程序在调试时会卡住

时间:2016-09-02 12:34:07

标签: debugging react-native google-chrome-devtools react-native-android

我的Android应用程序包含两个屏幕:“登录”和“仪表板”。 登录工作正常,但仪表板是麻烦制造者。

第一个问题

在登录屏幕上,我可以打开调试菜单,一切都按预期工作。当我切换到仪表板屏幕时,我无法再打开菜单。如果我在“登录”屏幕中启用了检查器,然后转到“仪表板”屏幕,则检查器将消失。

第二个问题

当我在没有附加调试器的情况下运行应用程序时,我在仪表板中没有数据,但登录工作正常。

当我附加调试器时,App会“卡住”很多。 通过单击屏幕(附带调试器),当它“卡住”时,App类向前移动一步 - 当我经常点击屏幕时,我最终得到了我期待的所有数据! 没有设置断点,我根本不需要使用调试器,只需附加它。

iOS对手似乎工作得很好。

这里可能有什么问题?

更新

我正在使用React-Native 0.31.0

只是为了澄清:我的问题本身不是调试器。我的问题是这样的事实,即在没有调试器的情况下我没有数据,但是在连接调试器时获取所有数据(仅限Android!)。

1 个答案:

答案 0 :(得分:0)

我相信已经弄明白问题的核心是什么。

调试React-Native App时,Chrome会“运行”代码,支持更多javascript。 (我发现很难找到合适的词语......)

来自React-Native documentation

  

在iOS模拟器和设备上,Android模拟器和设备React   Native使用JavaScriptCore,它是支持JavaScript的引擎   苹果浏览器。在iOS上,由于缺少可写

,JSC不使用JIT      iOS应用程序中的可执行内存。   使用Chrome调试时,它会运行其中的所有JavaScript代码   Chrome本身并通过WebSocket与本机代码进行通信。那么你   正在使用V8

在我的例子中,有些函数使用for of循环或array.some语法。

我不确定,现在支持什么,所以你(遇到过这个问题的人)可能想要更新你的react-native版本。

请参阅this ECMAScript Compatibility table

相关问题