Позбудьтеся попередження "Віддалений налагоджувач знаходиться у фоновій вкладці" у React Native


86

Я розпочав новий проект React Native і постійно отримую таке попередження:

Віддалений налагоджувач знаходиться у фоновій вкладці, що може спричинити повільну роботу програм. Виправте це, виставивши вкладку на перший план (або відкривши її в окремому вікні).

Це трохи дратує, тому я хочу знати, як я можу від цього позбутися? Я запускаю налагоджувач у Chrome, і я перемістив його в окреме вікно, але це не допомогло.


Для інших, хто читає це, я думаю, що вам потрібен швидший налагоджувач замість того, щоб ігнорувати ці попередження. Нижче відповідь @varunvs на використання response-native-налагоджувача видаляє попередження та скорочує час виводу вашого пристрою
Vineeth Pradhan

3
Правильною відповіддю ( нижче ) тепер є просто встановити прапорець "Підтримувати пріоритет" на сторінці відладчика.
orome

Відповіді:


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, і це спрацювало! Дякую
terlter Kağan Öcal

1
Я помістив цей код у свій верхній рівень index.js. Працює як шарм. if (__DEV__) { console.ignoredYellowBox = ['Remote debugger']; }
Майк С.

@MikeS. Я отримав попередження [eslint] '__DEV__' is not defined. (no-undef). Ви теж отримуєте?
антикафе

@anticafe Ні, я не отримую жодних попереджень. Тож я не впевнений, в чому б проблема.
Mike S.

Привіт, я використовую, YellowBox.ignoreWarnings(['Remote debugger', 'Require cycles']);але обидва попередження все ще з’являються у вікні моєї консолі. Я використовую версію 0.61.4 RN. Будь ласка, допоможіть
Archana Sharma

39

це рішення для мене працює

відкрити / перемістити http: // localhost: 8081 / debugger-ui (шлях за замовчуванням для віддаленої налагодження) в окремому вікні

можливо, це може допомогти :)


5
просто перемістіть вкладку зі своєї звичайної групи з 37 вкладок у власне вікно. спасибі
jakeforaker

Так, це працює. Але хтось може сказати мені, чому це?
Ranjan

Працює ідеально !!!
user3494434

24

Ви можете використовувати React Native Debugger, доступний за посиланням https://github.com/jhen0409/react-native-debugger Це окремий додаток для налагодження React Native додатків під час розробки.


3
Дякую, я обов'язково спробую, але це не зовсім те, що я шукаю як відповідь, оскільки це не вирішує попередження. Я не отримую попередження про інші програми RN на тому самому комп’ютері, як не дивно
mxmtsk

1
У мене була подібна проблема, але використання налагоджувача React Native це вирішило.
varunvs

Дякую, я погодився на це рішення, оскільки збереження відладчика у власному вікні не
видаляє

2
Встановлення іншого інструменту лише для видалення попередження - не найкраще рішення, і цей інший інструмент має свої проблеми. Правильна відповідь - відповідь Кьонссона нижче -console.ignoredYellowBox = ['Remote debugger'];
Лоран,

1
@ this.lau_ Хіба це не просто приховує попередження, а не усуває фактичну проблему? Я вважаю, що проблема, яку ми намагаємося вирішити, полягає у виправленні повільної продуктивності програми під час налагодження. Примусове приховування попередження не виправить.
varunvs


6

Саме через кількість вкладок, відкритих у браузері з вкладкою UI React Native Remote Debugger . Я теж стикався з тим самим питанням.

Щоб подолати це попереджувальне повідомлення, ви можете використовувати будь-який із наведених нижче способів:

  • Відкрийте анонімну вкладку, вставте http: // localhost: 8081 / debugger-ui в адресний рядок і натисніть ENTER . Нарешті перезавантажте програму (Command + R) .

  • Закрийте всі вкладки в браузері. Відкрийте лише 1 вкладку, натисніть http: // locahost: 8081 / debugger-ui, а потім перезавантажте програму (Command + R) .


6

Як згадував @jakeforaker в одному з коментарів. Попередження зникло, просто відкривши віддалений налагоджувач в окремому вікні замість вкладки у вашому існуючому вікні вашого браузера (хоча вам доведеться перезавантажити симулятор).

Як застереження сказано, тримати віддалений налагоджувач у тому ж вікні, що й інші вкладки

може спричинити повільну роботу програм

Тож я думаю, що просто придушення попередження, згадане @kjonsson: - console.ignoredYellowBox = ['Remote debugger'];здається, не найкраще рішення.


5

Ця проблема була вирішена, коли я закрив усі відкриті вікна Chrome і знову запустив Видалити налагодження. У мене раніше були відкриті вікна Chrome, тому "здається", що їх відкриття вбиває продуктивність.


5

Оскільки це комітування відбулось у березні 2017 року, ви можете ввімкнути прапорець « Підтримувати пріоритет» . Якщо його ввімкнено, він мовчки відтворює .wavфайл, кодований base64, щоб запобігти переходу вкладки браузера відладчика в режим низького енергоспоживання, що може вплинути на продуктивність веб-сокета. Це ефективно запобіжить попередженню, яке ви описуєте.



2

Я на Macbook. Я вирішив цю проблему, встановивши вікно налагоджувача на головному робочому столі, а не на окремому робочому столі, яке, на його думку, знаходиться у "Фоні".

введіть тут опис зображення


0

У мене вчора з’явилося те саме питання. Погугливши це призвело до цього повідомлення про переповнення стека . В одній із відповідей (від 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).'
    );
  };
})();

Як бачите, параметри конфігурації не використовуються, все це обмежується локально (докладнішу інформацію див. У наведеному вище посиланні на репо).


0

Я також стикався з такою ж проблемою близько тижня тому, і нарешті я знайшов рішення, яке чудово працює для мене

Він називається реактотрон, ви можете знайти його тут - https://github.com/reactotron/reactotron, і ви можете використовувати його для:
* перегляду стану вашого додатка
* відображення запитів та відповідей API
* виконання швидких тестів продуктивності
* підписка на частини вашого стан програми
* відображати повідомлення, подібні до console.log
* * відстежувати глобальні помилки з відстеженими трасами стеків, включаючи сліди стеку saga!
* диспетчерські дії, такі як урядовий експеримент з управління розумом
* гаряча зміна стану вашого додатка
* відстеження ваших саг

Сподіваюся, мій пост був корисним, і ви ніколи не зіткнетеся з цим нудним попередженням.

Удачі


0

Я використовую це в index.js

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

Я також імпортувавimport { AppRegistry, YellowBox } from 'react-native';
Майк С.

Хоча я просто перевірив це в новому додатку, і, здається, це не працює. Цікаво, чи щось змінилося 0.57.4?
Mike S.


0

можливі ймовірності того, що інший налагоджувач вже підключений до пакувальника. так закрийте термінал і налагодьте Google Chrome.

якщо ви використовуєте менеджер пакунків Visual Studio, тоді не запускайте менеджер пакунків за допомогою команди терміналу Mac / other os.

так що закрийте весь термінал і зупиніться на продовженні роботи з ящиками пакунків та налагоджувачем Google Chrome. розпочніть процес знову.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.