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

Vic*_*ous 5 debugging google-chrome-devtools react-native react-native-android

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

第一个问题

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

第二个问题

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

当我连接调试器时,应用程序会“卡住”很多。通过在屏幕“卡住”时单击屏幕(带有连接的调试器),App向前移动了一步-当我足够频繁地单击屏幕时,我得到的是我期望的所有数据!没有设置断点,我根本不需要使用调试器,只需附加它。

iOS对应程序似乎工作正常。

这有什么问题吗?

更新:

我正在使用React-Native 0.31.0

只是要澄清一下:我的问题不是调试器本身。我的问题是这样的事实:在附加调试器时,没有调试器就不会获得任何数据,但是会获得所有数据(仅适用于Android!)。

Vic*_*ous 1

我相信已经弄清楚问题的核心是什么了。

调试 React-Native 应用程序时,代码由支持更多 JavaScript 的 Chrome“运行”。(我发现很难找到合适的词来形容这个......)

来自React-Native 文档

在 iOS 模拟器和设备、Android 模拟器和设备上,React Native 使用 JavaScriptCore,它是为 Safari 提供支持的 JavaScript 引擎。在 iOS 上,由于缺乏可写,JSC 不使用 JIT

iOS 应用程序中的可执行内存。使用 Chrome 调试时,它会运行 Chrome 本身内的所有 JavaScript 代码,并通过 WebSocket 与本机代码进行通信。所以你使用的是V8

就我而言,这是一些使用for of循环或array.some语法的函数。

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

请参阅此 ECMAScript 兼容性表