【问题标题】:React Native - How to debug javascript code better?React Native - 如何更好地调试 javascript 代码?
【发布时间】:2015-11-30 09:35:08
【问题描述】:

我正在使用 React Native 0.13。目前我有一个 Android 模拟器,我可以在其中预览应用程序。我在 OSX Yosemite 工作。在很多情况下,当我单击按钮或链接时没有任何反应,这是由于 javascript 中的一些错误,但我在任何地方都没有收到任何错误消息,因此很难解决问题。对于控制台日志,我使用:

adb logcat *:S ReactNative:V ReactNativeJS:V

它显示了 console.log 输出,但它并没有在代码中断时给我确切的错误。

有人可以建议我一种调试的好方法以及如何使错误输出正常工作吗?

【问题讨论】:

    标签: javascript react-native


    【解决方案1】:

    调试 JS 代码的最佳方法是使用 Chrome 开发工具。您可以在chrome tab中进入远程执行JS代码时的模式,然后使用普通的chrome工具进行单步调试。为此,您需要打开 react-native dev 菜单并选择“debug in chrome”(参见this link for more detailed instructions)。然后在 chrome 中,您可以使用alt + ⌘ + j 打开开发控制台,转到“源”选项卡并使用⌘ + p 导航到某个特定的 JS 文件。然后在那里放置断点等...

    如果您想调试 java 代码,最简单的方法是让 Android Studio 启动您的应用。然后,您可以在附加调试器的情况下运行您的应用程序(使用ctr + d)或使用启动菜单中的“将调试器附加到 Android 进程”按钮并从菜单中选择您正在运行的应用程序。然后你可以在 Android Studio 中为 java 代码设置断点。

    【讨论】:

    • 感谢您之前的回答。我已经尝试在 Chrome 中进行调试,它有点工作,但我的主要问题仍然存在。例如,假设我输入这样的 javascript 代码:items.length() 而不是 items.length。我收到的异常消息是“警告:flattenChildren(...):遇到两个具有相同密钥的孩子,.$scene_1。子密钥必须是唯一的;当两个孩子共享一个密钥时,只会使用第一个孩子” .这与错误完全无关,甚至没有告诉我是哪一行或在哪个文件中,这让调试变得非常糟糕。
    • 在您描述的错误的情况下,即使没有启用调试(以反应原生“redbox”的形式),看起来您应该得到更好的错误描述。您能否提供一个简单的应用程序(js 模块)来说明问题并在 github 上报告(github.com/facebook/react-native/issues)。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2015-05-31
    • 1970-01-01
    • 2013-09-17
    相关资源
    最近更新 更多