当应用程序在应用模拟器中运行时,如何用React Native调试他们的React代码?


当前回答

如果你在连接到笔记本电脑的真实设备上运行应用程序,你可以使用react-native log-ios或react-native log-android通过终端调试它(它也适用于模拟器)

其他回答

如果你正在使用Redux,我强烈推荐React Native Debugger。它包括Chrome开发工具,但也有Redux开发工具和React开发工具。

Redux Devtools:这允许你查看你的操作,并在它们之间来回切换。它还允许您查看redux存储,并具有自动区分每个操作的先前状态和更新状态的功能,因此当您在一系列操作中来回执行时,您可以看到这一点。

React Devtools:这允许你检查某个组件,即它的所有道具以及它的组件状态。如果你有一个组件状态的布尔值,它让你点击它来切换它,看看当它改变时你的应用程序是如何反应的。很棒的特性。

Chrome Devtools允许你看到你所有的控制台输出,使用断点,暂停调试器;等。标准调试功能。如果你右键单击Redux Devtools中列出的操作区域,并选择“允许网络检查”,你可以在Chrome Devtools的网络选项卡中检查你的API调用。

总之,把这些都放在一个地方真是太棒了!如果你不需要其中一个,你可以打开/关闭它。获得React本机调试器并享受生活。

在react-native的新版本中,您可以使用react-native log-android或react-native log-android查看应用程序在dev模式下的日志。

如果你想在默认情况下打开调试:

import { NativeModules } from 'react-native';

if (__DEV__) {
  NativeModules.DevSettings.setIsDebuggingRemotely(true)
}

要让它在Android上工作:

npm install --save react-native-devsettings-android
react-native link react-native-devsettings-android

参考:启动一个React Native应用程序,默认启用“调试JS远程”

除了其他答案。可以使用调试器语句调试react-native

例子:

debugger; //breaks execution

你的chrome开发工具必须打开这工作

步骤1: 把调试器放在你想要停止脚本的地方,比如:

  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

步骤4: 选择开发人员工具。

步骤5: 在源代码中编写调试器的任何地方,调试器都会在Sources选项卡中暂停。进入控制台,输入任何你想调试的参数(出现在代码块中),例如: 要移动到下一个调试器点,再次移动到Sources ->单击恢复脚本执行按钮(右下角蓝色按钮)

把调试器放在你想暂停脚本的任何地方。

享受调试! !