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


当前回答

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

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

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

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

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

其他回答

在终端adb logcat *:S ReactNative:V ReactNativeJS:V 在Android Studio中打开项目,打开logcat(底部面板上的按钮) 在终端react-native Run -android中运行

构建完成后,您应该在logcat中看到Android Studio中的详细日志。

在React-Native中,调试要容易得多。

在IOS中使用调试

CMD + d ctrl + cmd + z(用于模拟器)

在android中调试

用触摸摇动设备(确保你的开发者选项是启用的)

你可以从brew安装React本机调试器。它比chrome中的调试器使用起来更舒服

你也可以使用自定义库,如果你不想摇你的真实手机每2分钟

我创建了一个库,允许你在开发模式下使用3个手指触摸而不是摇晃来打开开发菜单

https://github.com/pie6k/react-native-dev-menu-on-touch

你只需要在里面包装你的应用程序:

从react-native-dev-menu-on-touch导入DevMenuOnTouch; //或:import {DevMenuOnTouch} from 'react-native-dev-menu-on-touch'

class YourRootApp extends Component {
  render() {
    return (
      <DevMenuOnTouch>
        <YourApp />
      </DevMenuOnTouch>
    );
  }
}

当你必须在真正的设备上调试并且你有同事坐在你旁边时,它真的很有用。

默认情况下,我的ios模拟器没有捕捉到击键,这就是为什么cmd-D不能工作的原因。我必须使用模拟器的菜单打开键盘设置:

硬件>键盘>连接键盘

现在cmd-D启动chrome调试。