消除React Native中的“远程调试器在后台选项卡中”警告


86

我已经开始了一个新的React Native项目,并且不断收到以下警告:

远程调试器位于背景选项卡中,这可能会导致应用运行缓慢。通过突出显示选项卡(或在单独的窗口中打开)来解决此问题。

这有点烦人,所以我想知道如何摆脱它?我在Chrome中运行调试器,将其移至单独的窗口,但没有帮助。


对于其他阅读本文的人,我认为您需要的是一个更快的调试器,而不是忽略这些警告。在下面的@varunvs答案中使用react-native-debugger可以消除警告并缩短设备输出时间
Vineeth Pradhan

3
正确的答案(如下所示)现在只需检查调试器页面上的“维护优先级”复选框即可。
orome

Answers:


148

为了消除整个项目中的警告,请将以下内容添加到最外层的Javascript文件中(大部分时间index.js用于React Native)

对于本机 v0.57+

import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Remote debugger']);

从官方的React Native文档中引用以下内容:

https://facebook.github.io/react-native/docs/debugging.html

本机 v0.56 或以下:

在代码中尽早添加以下内容:

console.ignoredYellowBox = ['Remote debugger'];

简单,简单且针对该错误。为我工作。可以替代您想要的任何文本。


在我的AppRegistry.registerComponent语句之前添加了此代码,它起作用了!谢谢
ILTER卡根OCAL

1
我将此代码放在顶层index.js。奇迹般有效。if (__DEV__) { console.ignoredYellowBox = ['Remote debugger']; }
Mike S.

@MikeS。我得到了警告[eslint] '__DEV__' is not defined. (no-undef)。你也明白吗?
anticafe '18

@anticafe不,我没有收到任何警告。所以我不确定会是什么问题。
Mike S.

嘿,我正在使用,YellowBox.ignoreWarnings(['Remote debugger', 'Require cycles']);但是两个警告仍然出现在控制台窗口中。我正在使用0.61.4版本的RN。请大家帮忙
阿奇纳夏尔马


24

您可以使用https://github.com/jhen0409/react-native-debugger上可用的React Native Debugger。这是一个用于在开发过程中调试React Native应用程序的独立应用程序。


3
谢谢,我一定会尝试的,但它并不是我想要的答案,因为它不能解决警告。我没有在同一台计算机上收到其他RN Apps的警告,这很奇怪
mxmtsk 2016年

1
我有类似的问题,但是使用React Native调试器解决了它。
varunvs

谢谢,我选择了此解决方案,因为将调试器保留在自己的窗口中并不会一直对我消除警告
mxmtsk

2
安装另一个工具以消除警告不是最好的解决方案,并且另一个工具也有其自身的问题。正确的答案是kjonsson的答案console.ignoredYellowBox = ['Remote debugger'];
Laurent

1
@ this.lau_难道不只是隐藏警告而不解决实际问题?我相信我们要解决的问题是在调试时解决应用程序性能下降的问题。强行隐藏警告无法解决该问题。
varunvs


6

这是因为在浏览器中使用React Native Remote Debugger UI选项卡打开了许多选项。我也面临同样的问题。

要克服此警告消息,您可以使用以下任一方法:


6

正如@jakeforaker在评论之一中提到的那样。只需在单独的窗口中打开远程调试器,而不是在浏览器现有窗口中的选项卡中打开警告,就可以消除警告(不过您必须重新加载模拟器)。

正如警告所言,将远程调试器与其他选项卡保留在同一窗口中

可能会导致应用运行缓慢

因此,我认为像@kjonsson所提到的那样简单地抑制警告console.ignoredYellowBox = ['Remote debugger'];似乎不是最好的解决方案。


5

当我关闭所有打开的Chrome窗口并再次启动“删除调试”时,此问题已解决。我以前曾打开过Chrome浏览器窗口,因此“似乎”打开它们会降低性能。


5

自2017年3月提交以来,您可以启用“维护优先级”复选框。启用后,它会静默播放base64编码的.wav文件,以防止调试器的浏览器选项卡进入低功耗模式,这会影响websocket的性能。这将有效防止您描述的警告。



2

我在Macbook上。我通过将“调试器”窗口置于主桌面上而不是将其放置在它认为位于“背景”中的单独桌面上来解决此问题。

在此处输入图片说明


0

昨天我弹出了同样的问题。谷歌搜索导致了这个Stack Overflow帖子。在其中之一(由adriansprod撰写)中,他建议:

Chrome debugger in it's own window fixes. But annoying problem

您的React Native调试器可能不在自己的Chrome浏览器窗口中,而是在Chrome浏览器标签中。正如adriansprod建议的那样,将其作为自己的窗口拉出,为我解决了此问题。


0

(非常烦人的)错误消息由 debuggerWorker.js,可惜它不包含任何配置选项来关闭该消息。因此,暂时没有办法配置您的应用程序以禁用该消息。

相关代码概述如下(适用原始许可证):

var visibilityState;
var showVisibilityWarning = (function() {
  var hasWarned = false;
  return function() {
    // Wait until `YellowBox` gets initialized before displaying the warning.
    if (hasWarned || console.warn.toString().includes('[native code]')) {
      return;
    }
    hasWarned = true;
    console.warn(
      'Remote debugger is in a background tab which may cause apps to ' +
      'perform slowly. Fix this by foregrounding the tab (or opening it in ' +
      'a separate window).'
    );
  };
})();

如您所见,没有使用任何配置选项,整个过程在本地范围内(有关更多详细信息,请参见上面的repo链接)。


0

大约一周前,我也遇到了同样的问题,最后我找到了对我有效的解决方案

它reactotron叫,你可以在这里找到- https://github.com/reactotron/reactotron,你可以用它来:
*查看应用程序状态
*显示API请求和响应
*进行快速的性能基准
*订阅的部分你应用程序状态
*显示类似于console.log的消息
*使用源映射堆栈跟踪(包括传奇堆栈跟踪)跟踪全局错误!
*调度诸如政府运行的精神控制实验之类的动作
*热插拔应用程序的状态
*跟踪您的骚扰

希望我的帖子对您​​有所帮助,并且您永远不会面对这个乏味的警告。

祝好运


0

我用这个 index.js

if (__DEV__) {
  console.ignoredYellowBox = [
    'Remote debugger',
    'Warning: isMounted… is deprecated',
    'Module RCTImageLoader'
  ];
}

我还进口了import { AppRegistry, YellowBox } from 'react-native';
Mike S.18年

尽管我只是在一个新的应用程序中对此进行了重新测试,但似乎无法正常工作。想知道是否有所改变0.57.4
Mike S.


0

可能有另一个调试器已经连接到打包程序。因此,请关闭您的终端机和调试器Google Chrome。

如果您使用Visual Studio的软件包管理器,请不要通过Mac /其他os终端命令启动软件包管理器。

因此,请关闭所有终端并停止使用软件包管理器和Google chrome调试器。重新开始该过程。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.