当前位置 : 主页 > 网页制作 > React >

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

来源:互联网 收集:自由互联 发布时间:2021-06-15
我的 Android应用程序包含两个屏幕:“登录”和“仪表板”. 登录工作正常,但仪表板是一个麻烦制造者. 第一个问题: 在登录屏幕上,我可以打开调试菜单,一切都按预期工作.当我切换到
我的 Android应用程序包含两个屏幕:“登录”和“仪表板”.
登录工作正常,但仪表板是一个麻烦制造者.

第一个问题:

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

第二个问题:

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

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

iOS对应物似乎完全正常.

这可能有什么问题?

更新:

我使用React-Native 0.31.0

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

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

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

从React-Native documentation:

On iOS simulators and devices, Android emulators and devices React
Native uses JavaScriptCore which is the JavaScript engine that powers
Safari. On iOS JSC doesn’t use JIT due to the absence of writable

executable memory in iOS apps.
When using Chrome debugging, it runs all the JavaScript code within
Chrome itself and communicates with native code via WebSocket. So you
are using V8

在我的例子中,它是一些用于循环或array.some语法的函数.

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

请参阅this ECMAScript Compatibility table

网友评论