ChatGPT解决这个技术问题 Extra ChatGPT

如何登录 React Native

如何在 React Native 中记录变量,例如在 Web 开发时使用 console.log

试试 react-native-log-ios npm pkg,它开箱即用,无需远程 JS 调试。

P
Peter Mortensen

使用 console.logconsole.warn 等。

从 React Native 0.29 开始,您只需运行以下命令即可在控制台中查看日志:

react-native log-ios
react-native log-android

这非常有用,因为启动调试器会使动画变得缓慢。
这是行不通的。当我运行 react-native log-ios evelopers-Mac-mini com.apple.CoreSimulator.SimDevice.02C1B6C7-2CD2-406E-AC93-DD430E5E3C69[948] (com.apple.videosubscriptionsd) <Notice> 时,我收到了这个消息:服务只运行了 0 秒。将重生时间推迟 10 秒。
@rptwsthi 我有同样的问题。你能解决这个问题吗?
@Denis Kniazhev我认为没有只记录错误的选项,但您可以过滤输出。如果您使用的是 Mac 或 Linux:react-native log-android | grep “我的错误过滤器”。
console.warn 帮助我检查某些问题。
P
Peter Mortensen

console.log 有效。

默认情况下,在 iOS 上,它会记录到 Xcode 中的调试窗格。

在 iOS 模拟器中,按 (+D) 并按 Remote JS Debugging。这将在 localhost 上打开一个资源 http://localhost:8081/debugger-ui。从那里,使用 Chrome 开发者工具 JavaScript 控制台查看 console.log


以及如何使用 React Native 的 atom 在 Android 中打印控制台日志?
@sandy 请参阅此answer。它不是专门针对 Atom 的,但可以用于非 XCode(又名非 macOS)开发
请注意,从 React Native 0.29 及更高版本开始,您无需运行调试器即可获取日志。只需在项目文件夹内的命令行上运行 react-native log-ios 或 react-native log-android 即可。
当你打开Remote JS Debugging 时,你必须按option+command+i 并检查控制台。完全必要的信息丢失了,让我感到困惑。
只要记住你的应用程序的生产版本中的console.log 可能会使你的应用程序在 ios 中崩溃。因此,请确保您检查环境是否正在开发,您可以通过 DEV 全局变量在 react native 中知道它。
J
Joe

Pre React Native 0.29,在控制台中运行:

adb logcat *:S ReactNative:V ReactNativeJS:V

发布 React Native 0.29,运行:

react-native log-ios

或者

react-native log-android

正如马丁在另一个答案中所说。

这会显示所有 console.log()、错误、注释等,并导致零减速。


+1 这个简单的选项。我最终使用了一个稍微不同的命令(在我阅读了 The Fine Manual 之后)来获取时间:adb logcat -v time -s ReactNativeJS
在后台保持调试选项卡会产生延迟。解决方案是将选项卡保持在前台或在新窗口中打开它。
我已经使用 React Native Debugger 几个月了,这是避免 Sabbir 所说的滞后的最佳选择:github.com/jhen0409/react-native-debugger
react-native log-android 错误无法识别的命令“log-android”。 react-native --version 4.14.0 adb logcat 在安装或不安装 react-native 工具的情况下继续工作。
R
Ronan Boiteau

使用console.debug("text");

您将在终端内看到日志。

脚步:

运行应用程序:

react-native run-ios        # For iOS
react-native run-android    # For Android

运行记录器:

react-native log-ios        # For iOS
react-native log-android    # For Android

有什么方法可以只从console.log 过滤?
对我不起作用,我只看到通用的 React Native 日志消息,例如 Initializing React Xplat Bridge.
a
alexdriedger

这就是 Chrome 开发者工具是你的朋友的地方。

通过以下步骤,您应该可以访问 Chrome 开发者工具,您可以在其中看到您的 console.log 语句。

脚步

如果您尚未使用 react-native run-android 或 react-native run-ios 运行应用程序,请安装 Google Chrome 打开开发者菜单 Mac:⌘+D for iOS 或⌘M for Android iOS Windows/Linux:摇晃 Android 手机 选择调试JS Remotely 这应该在 Chrome 中启动调试器 在 Chrome 中:工具 -> 更多工具 -> 开发人员选项,并确保您在控制台选项卡上

现在,无论何时执行 console.log 语句,它都应该出现在 Chrome 开发工具中。官方文档是 here


这可能会在开发过程中降低应用程序的性能。
P
Peter Mortensen

Visual Studio Code 有一个不错的调试控制台,可以显示你的 console.log 文件。

https://i.stack.imgur.com/TBBsa.png

Visual Studio Code 通常对 React Native 友好。


您能否详细说明 VS Code 如何从 react-native 接收调试输出。谢谢!
从设备上的应用程序中选择“调试 JS”,然后从 VS Code 的视图菜单中选择“切换调试控制台(shift-command-y)”。不过,您需要 github.com/Microsoft/vscode-react-native
P
Peter Mortensen

在开发 React Native 应用程序时,我使用三种方法进行调试:

console.log():在控制台中显示 console.warn():在应用程序底部的黄色框中显示 alert():就像在 web 上一样显示为提示


P
Peter Mortensen

在要记录数据的地方,使用

console.log("data")

要在终端中打印此日志,请在 Android 上使用以下命令:

npx react-native log-android

对于 iOS:

npx react-native log-ios

P
Peter Mortensen

我更喜欢向你们推荐使用 React Native Debugger。您可以使用此命令 (Mac only) 下载并安装它。

brew update && brew cask install react-native-debugger

我使用它而不是默认的 start 这将打开调试器,因为您默认的调试器而不是 Chrome,并且 -g 标志将防止它劫持重新加载的焦点。 "start": "env REACT_DEBUGGER=\"$([ -d '/Applications/React Native Debugger.app' ] && echo \"open -g 'rndebugger://set-debugger-loc?host=localhost&port=8081' --args\")\" node node_modules/react-native/local-cli/cli.js start"
P
Peter Mortensen

我遇到了同样的问题:控制台消息没有出现在 Xcode 的调试区域中。在我的应用程序中,我使用 Cmd + D 调出调试菜单,并记得我设置了“在 Safari 中调试”。

我关闭了它,一些消息被打印到输出消息,但不是我的控制台消息。但是,其中一条日志消息说:

__DEV__ === false, development-level warning are OFF, performance optimizations are ON"

这是因为我之前使用以下命令捆绑了我的项目以在真实设备上进行测试:

react-native bundle --minify

这个捆绑没有“开发模式”。要允许开发消息,请包含 --dev 标志:

react-native bundle --dev

console.log 消息又回来了!如果您不捆绑真实设备,请不要忘记将 AppDelegate.m 中的 jsCodeLocation 重新指向 localhost(我做到了!)。


b
bocai

在 Xcode Simulator 中按 [command + control + Z],选择 Debug JS Remotely,然后按 [command + option + J] 打开 Chrome 开发者工具。

Xcode Simulator Img

参考:Debugging React Native Apps


P
Peter Mortensen

在 React-Native 中获取日志非常简单。

使用 console.log 和 console.warn

console.log('character', parameter)

console.warn('character', parameter)

您可以在浏览器控制台中查看此日志。如果您想检查设备日志,或者说,生产 APK 日志,您可以使用:

adb logcat

adb -d logcat

除了 console.logconsole.warn 语句外,所有内容都显示在 ADB 上。
是的@AndrewKoster 我同意你的看法,我们可以使用 ADB 查看所有日志,但这会在此处为您提供设备日志,该查询与记录 Web 开发有关。 ADB 还为您提供设备日志,您可以控制和检查设备配置。您可以从下面的 ADB 命令链接中收集信息,这些信息可以帮助您进行开发。 androidcentral.com/10-basic-terminal-commands-you-should-know
P
Peter Mortensen

使用时有两个选项可以调试或获取 React Native 应用程序的输出:

1.模拟器或真机

首先使用模拟器,请使用:

react-native log-android

或者

react-native log-ios

获取日志输出

2. 在真实设备上,摇晃您的设备。

因此菜单将来自您选择远程调试的位置,它将在您的浏览器中打开此屏幕。因此,您可以在控制台选项卡中看到您的日志输出。

https://i.stack.imgur.com/7kBOc.png


b
bygirish

开发时间记录

对于开发时间日志,您可以使用 console.log()。一件重要的事情,如果你想在生产模式下禁用日志记录,那么在应用程序的 Root Js 文件中,只需分配这样的空白函数 - console.log = {} 它将完全禁用整个应用程序的日志发布,这实际上是生产中需要的作为 console.log 的模式会消耗时间。

运行时记录

在生产模式下,当真实用户实时使用您的应用程序时,还需要查看日志。这有助于理解错误、用法和不需要的情况。市场上有许多为此提供的第三方付费工具。我使用过的其中之一是 Logentries

好消息是 Logentries 也有 React Native Module。因此,使用移动应用程序启用运行时日志记录将花费更少的时间。


R
Ryo-code

大约一个月前刚刚发布的东西是“创建 React Native App”,这是一个很棒的样板,它允许您(以最小的努力)使用 Expo 应用程序在您的移动设备(任何带有相机)上显示您的应用程序的样子.它不仅具有实时更新,而且还允许您在终端中查看控制台日志,就像在为 Web 开发时一样,而不必像之前使用 React Native 那样使用浏览器。

当然,您必须使用该样板创建一个新项目......但是如果您需要迁移文件,那应该不是问题。试一试。

编辑:实际上它甚至不需要相机。我说的是扫描二维码,但你也可以输入一些东西来与你的服务器同步,而不仅仅是二维码。


P
Peter Mortensen

可以帮助您的 react-native-xlog 模块是 WeChatXlog 用于 React Native。这可以在 Xcode 控制台和日志文件中输出,产品日志文件可以帮助您调试。

Xlog.verbose('tag', 'log');
Xlog.debug('tag', 'log');
Xlog.info('tag', 'log');
Xlog.warn('tag', 'log');
Xlog.error('tag', 'log');
Xlog.fatal('tag', 'log');

P
Peter Mortensen

如果您在 OS X 上并使用模拟器,则可以直接在 Safari 的网络检查器中查看您的 console.log

Safari → 开发 → 模拟器 - [你的模拟器版本在这里] → JSContext


n
new QOpenGLWidget

您使用与常规网络相同的东西。 console 命令也适用于这种情况。例如,您可以使用 console.log()console.warn()console.clear() 等。

当您在运行 React Native 应用程序时进行日志记录时,您可以使用 Chrome 开发人员使用 console 命令。


P
Peter Mortensen

您可以使用设备上的远程 js 调试选项,也可以简单地使用 react-native log-android 和 react-native log-ios for iOS。


什么是“调试”?
P
Peter Mortensen

console.log() 是调试代码的简单方法,但在显示任何状态时需要与箭头函数或 bind() 一起使用。您可能会发现 Stack Overflow 问题 How can I print state in the console with React Native? 很有用。


P
Peter Mortensen

每个开发人员都面临着使用 React Native 进行调试的问题,甚至我也遇到过。我指的是这个,解决方案对我来说在初始级别就足够了。它涵盖了一些帮助我们尝试和使用任何让我们感到舒适的方法。

使用 console.log 调试 使用 Nuclide 调试代码(逻辑) 使用 Chrome 调试代码(逻辑) 使用 Xcode 调试 GUI

https://codeburst.io/react-native-debugging-tools-3a24e4e40e4


P
Peter Mortensen

将 console.log("My log text") 放入您的代码中,转到您的命令行工具,将自己定位在其开发文件夹中

在安卓中:

写这个命令:React-native log-android

在 iOS 中:

写这个命令:React-native log-ios


P
Peter Mortensen

您也可以使用 Reactotron。它将为您提供比日志记录更多的功能。


强烈推荐——Reactotron 给你一个控制台加上对你的 redux 商店的完全可见性加上一个 api 调用、事件等的日志。没有它我无法在 React Native 中开发
R
Raj D

https://i.stack.imgur.com/9oxIc.jpg

使用 React Native 调试器进行日志记录和 Redux 存储 - https://github.com/jhen0409/react-native-debugger

只需下载它并作为软件运行。然后从模拟器启用调试模式。

它支持其他调试功能,就像 Google Chrome 开发人员工具中的元素一样,有助于查看提供给任何组件的样式。

最后完全支持 Redux 开发工具。


GitHub 链接已损坏 (404)。
你说的最后一段是什么意思?你能详细说明吗?
更新了链接
a
alexanderdavide

如果您使用 VSCode 并使用 VSCode React Native Tools 运行模拟器,则可以在输出选项卡中看到 console.* 语句。确保在输出选项卡的下拉列表中选择正确的子选项卡。我的当前名为 LogCat - emulator-5554


P
Peter Mortensen

当您使用开发人员菜单中的远程 JavaScript 调试器时,console.log() 是在控制台中查看日志的最佳且简单的方法。


P
Peter Mortensen

通常有两种情况我们需要调试。

当我们遇到与数据相关的问题时,我们想检查我们的数据并与数据相关的调试。在这种情况下,console.log('data::', data) 和远程调试 JavaScript 是最好的选择。另一种情况是 UI 和样式相关的问题,我们需要检查组件的样式。在这种情况下,react-dev-tools 是最好的选择。

Both of the methods are mentioned here


P
Peter Mortensen

你可以通过两种方法做到这一点

通过使用警告 console.warn("something" + this.state.Some_Sates_of_variables);通过使用警报。每次都这样不好。如果它达到警报,那么每次都会打开一个弹出窗口,所以如果进行循环,则意味着不建议使用它。 Import the {Alert} from 'react-native' // 使用这个警报 Alert.alert("something " +this.state.Some_Sates_of_variables);


P
Peter Mortensen

使用 Windows 和 Android Studio 的用户:

您将在 Android Studio 的 Logcat 下找到它。这里显示了很多日志消息,因此您可能更容易为“ReactNativeJS”创建一个过滤器,它只会显示您在 React Native 应用程序中创建的 console.log 消息。


P
Peter Mortensen

console.log 可用于任何 JavaScript 项目。

如果您在 localhost 中运行应用程序,那么显然它类似于任何 JavaScript 项目。但是在使用模拟器或任何设备时,将该模拟器连接到我们的本地主机,我们可以在控制台中看到它。