React Native如何进行调试?

338

在应用模拟器中运行React Native应用时,如何对其进行调试?


除了这些答案之外,如果您正在使用VS Code并希望在其中进行调试而不是Chrome,则可以查看我的这个答案 - gprathour
请关注这篇博客。 https://medium.com/javascript-in-plain-english/react-native-debug-with-vscode-in-simple-steps-bf39b6331e67 - Tunvir Rahman Tusher
50个回答

5

文件路径中有空格会阻止使用Cmd+D。我将项目移动到没有空格的位置,终于让Chrome调试器工作了。看起来像是一个bug


5

你可以使用Safari调试iOS版应用程序,而无需启用“Debug JS Remotely”,只需按照以下步骤操作:

1. Enable Develop menu in Safari: Preferences → Advanced → Select "Show Develop menu in menu bar"
2. Select your app's JSContext: Develop → {Your Simulator} → Automatically Show Web Inspector for JS JSContext
3. Safari's Web Inspector should open which has a Console and a Debugger

4
非常简单,只需要两个命令。
For IOS $ react-native log-ios
For Android $ react-native log-android

这是我做的方式! - Zach Cook
这是一个非常好的方式,可以查看您的商店正在发生什么。 - Daan

4
  1. 如果您正在使用模拟器,请使用Ctrl+M,如果是模拟器,请使用Cmd+D

  2. 点击 - 远程调试js

  3. 在Google Chrome中进入控制台


4

在React-Native中,调试非常容易。

  • 要在iOS上进行调试,请使用:

cmd + d

ctrl + cmd + z (适用于模拟器)

  • 要在Android上进行调试,请:

摇晃设备并触摸(确保开启了开发者选项)


1
很好的解释。 - Narendra Solanki

4
如果您使用Redux,我强烈建议使用React Native Debugger。它包含Chrome开发工具,还有Redux开发工具和React开发工具。
Redux Devtools: 这允许您查看操作,并向前向后浏览它们。它还允许您查看redux存储,并具有自动差异功能以将上一个状态与每个操作的更新状态进行比较,因此您可以在一系列操作中向前向后移动时查看它们。
React Devtools: 这允许您检查某个组件,即其所有props以及其组件状态。如果您有组件状态的部分是布尔值,它会让您单击它以切换它,并查看更改时应用程序的反应。非常好的功能。
Chrome Devtools:可以查看所有控制台输出,使用断点,暂停调试等。标准调试功能。如果您右键单击Redux Devtools中操作列表所在的区域,并选择“允许网络检查”,则可以在Chrome Devtools的网络选项卡中检查API调用,这很棒。
总之,拥有这些全部工具非常棒!如果您不需要其中一种,可以切换开/关。获取React Native Debugger并享受生活。

4
假设您想在Android模拟器上显示此菜单 enter image description here
  • 那么,尝试在Mac上的Android模拟器中按⌘+m以弹出此开发设置对话框。

  • 如果没有显示,则转到 AVD >(点击笔编辑您的模拟器配置)> 高级设置 > 选中启用键盘输入框enter image description here

  • 然后重试⌘+m

  • 如果仍然没有显示,请转到正在运行的模拟器设置,然后在发送键盘快捷键到组合框/下拉列表中选择Emulator controls(默认)选项。

enter image description here

  • 然后重试⌘+m

  • 希望这能有所帮助,对我很有效。


4
这是使用React Native调试器应用程序的替代方法。
您可以使用以下链接下载应用程序,它非常适合管理Redux存储以及源代码。 react-native-debugger 同时,现在您可以直接使用以下链接来帮助您。 chrome-developer-tools

3

步骤 1:debugger 放在你想要停止脚本的位置,例如:

  async saveItem(item, selectedValue) {
    debugger
    try {
        await AsyncStorage.setItem(item, selectedValue);
    }
    catch (error) {
        console.error('AsyncStorage error: ' + error.message);
    }
}

这将在代码块中控制流程到达时暂停调试器。
步骤2: 在ios模拟器上按下Cmd+D,在Android模拟器上按下Cmd+M。如果您使用的是真实设备,请摇动设备以打开开发菜单,如果不想摇动设备,请参考这篇博客
步骤3: 选择启用远程JS调试,这将打开Chrome。 enter image description here 步骤4: 选择开发者工具。 enter image description here 步骤5: 在Sources选项卡中,调试器会在您编写的代码块中任何位置暂停。转到控制台并键入您要调试的任何参数(在代码块中存在),例如: enter image description here 要移动到下一个调试器点,请再次转到Sources ->单击“恢复脚本执行”按钮(右上角的蓝色按钮)。
在您想要暂停脚本的任何地方放置调试器。
享受调试吧!

2
使用Visual Code Studio调试React Native Android和iOS应用的最佳方法:
第1步:
安装React Native - Full Pack扩展
第2步:
使用USB调试模式连接移动设备或从Android Studio打开模拟器。
第3步:
在Visual Code Studio的左侧菜单中单击调试选项,单击添加配置并选择React Native,然后创建launch.json。
第4步:
在手机上长按返回键或晃动手机打开开发选项,并启用远程调试js。
第5步:
最后一步是单击播放按钮并选择Debug android或Debug ios。
有关更多信息,请参阅此链接。

https://medium.com/@tunvirrahmantusher/android-debug-with-vscode-for-react-native-96f54d73462a


第四步对我来说不太清楚。我理解我们需要用我们的应用程序来完成这个步骤,对吗?我的应用程序在我手机上运行时有一些问题,会导致应用程序关闭。 - Dani
我暂时无法激活任何日志,因为出现了这个问题。 - Dani
将默认函数保留在“index”上,我看到了这个:https://dl2.pushbulletusercontent.com/NUYTgl6Fgi6978eL8DehOSSQdO5SFqu1/Screenshot_20190415-103126_dejaVu.png - Dani
1
你的React Redux没有正确安装,请删除node_module并重新安装npm。 - Vishal Dhanotiya
这与我需要手动安装一些已弃用的库有关。谢谢你的指点。 - Dani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接