Deshágase de la advertencia "El depurador remoto está en una pestaña en segundo plano" en React Native

87

Comencé un nuevo proyecto React Native y sigo recibiendo la siguiente advertencia:

El depurador remoto se encuentra en una pestaña en segundo plano, lo que puede hacer que las aplicaciones funcionen lentamente. Solucione esto colocando la pestaña en primer plano (o abriéndola en una ventana separada).

Es un poco molesto, así que quiero saber cómo puedo deshacerme de él. Estoy ejecutando el depurador en Chrome y lo moví a una ventana separada, pero no ayudó.

mxmtsk
fuente
Para otros que lean esto, creo que lo que necesitan es un depurador más rápido en lugar de ignorar estas advertencias. A continuación, la respuesta de @varunvs para usar react-native-debugger elimina la advertencia y acorta el tiempo de salida de su dispositivo
Vineeth Pradhan
3
La respuesta correcta (a continuación ) es ahora simplemente marcar la casilla de verificación "Mantener prioridad" en la página del depurador.
orome
desde el uso de react-native v0.63.0 LogBox.ignoreLogs(['Remote debugger']);dereact-native
Anton Novik hace

Respuestas:

148

Si tiene la casilla de verificación Mantener prioridad en la ventana del depurador, intente habilitarla antes de pasar a cualquiera de las siguientes soluciones.

Para deshacerse de la advertencia en todo su proyecto, agregue lo siguiente a su archivo Javascript más externo (la mayoría de las veces es index.jspara React Native)

para react-native v0.63+:

Uso LogBox: https://reactnative.dev/docs/debugging#logbox

LogBox.ignoreLogs(['Remote debugger']);

para react-native v0.57 - v0.62:

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

Haga referencia a esto de los documentos oficiales de React Native:

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

react-native v0.56 o por debajo:

Agregue lo siguiente al principio de su código:

console.ignoredYellowBox = ['Remote debugger'];

Fácil, simple y específico para ese error. Funciona para mi. Puede sustituir cualquier texto que desee.

kjonsson
fuente
¡Agregué esto justo antes de mi declaración AppRegistry.registerComponent y funcionó! Gracias
İlter Kağan Öcal
1
Puse este código en mi nivel superior index.js. Funciona de maravilla. if (__DEV__) { console.ignoredYellowBox = ['Remote debugger']; }
Mike S.
@MikeS. Recibí una advertencia [eslint] '__DEV__' is not defined. (no-undef). ¿También lo entiendes?
Anticafe
@anticafe No, no recibo ninguna advertencia. Así que no estoy seguro de cuál sería el problema.
Mike S.
Hola, estoy usando, YellowBox.ignoreWarnings(['Remote debugger', 'Require cycles']);pero ambas advertencias siguen apareciendo dentro de la ventana de mi consola. Estoy usando la versión 0.61.4 de RN. Por favor ayuda
Archana Sharma
39

esta solución es un trabajo para mí

abrir / mover http: // localhost: 8081 / debugger-ui (ruta predeterminada para la depuración remota) en la ventana separada

tal vez eso pueda ayudar :)

anztrax
fuente
5
simplemente mueva la pestaña de su grupo normal de 37 pestañas a su propia ventana. gracias
jakeforaker
Sí, eso funciona. Pero cualquiera puede decirme por qué es eso?
Ranjan
24

Puede usar React Native Debugger disponible en https://github.com/jhen0409/react-native-debugger Es una aplicación independiente para depurar aplicaciones React Native durante el desarrollo.

varunvs
fuente
3
Gracias, definitivamente lo probaré, pero no es exactamente lo que estoy buscando como respuesta porque no resuelve la advertencia. No recibo la advertencia en otras aplicaciones RN en la misma computadora de manera extraña
mxmtsk
1
Tuve un problema similar, pero el depurador React Native lo resolvió.
varunvs
Gracias, opté por esta solución, ya que mantener el depurador en sus propias ventanas no me borra la advertencia todo el tiempo
mxmtsk
2
Instalar otra herramienta solo para eliminar una advertencia no es la mejor solución, y esa otra herramienta tiene sus propios problemas. La respuesta correcta es la de kjonsson a continuación -console.ignoredYellowBox = ['Remote debugger'];
laurent
1
@ this.lau_ ¿No oculta eso la advertencia y no soluciona el problema real? Creo que el problema que estamos tratando de abordar es corregir el rendimiento lento de la aplicación durante la depuración. Ocultar a la fuerza una advertencia no lo solucionará.
varunvs
8
  1. Avanza http://localhost:*****/debugger-uipor la ventana separada.
  2. Reiniciar Remote JS Debugging.
Ramzan Chasygov
fuente
6

Esto se debe a la cantidad de pestañas que se abren en el navegador con la pestaña React Native Remote Debugger UI . También enfrenté el mismo problema.

Para superar este mensaje de advertencia, puede utilizar cualquiera de los siguientes métodos:

higull
fuente
6

Como lo menciona @jakeforaker en uno de los comentarios. La advertencia desapareció simplemente abriendo el depurador remoto en una ventana separada en lugar de una pestaña en la ventana existente de su navegador (sin embargo, debe volver a cargar su simulador).

Como dice la advertencia, mantener el depurador remoto en la misma ventana que otras pestañas

puede hacer que las aplicaciones funcionen lentamente

Así que creo que simplemente suprimir la advertencia como lo menciona @kjonsson: console.ignoredYellowBox = ['Remote debugger'];no parece ser la mejor solución.

Ashish Pisey
fuente
5

Este problema se resolvió cuando cerré todas las ventanas abiertas de Chrome e inicié Quitar depuración nuevamente. Anteriormente había tenido ventanas de Chrome abiertas, por lo que "parece" que tenerlas abiertas mata el rendimiento.

dnp
fuente
5

Desde esta confirmación en marzo de 2017, puede habilitar la casilla de verificación Mantener prioridad . Cuando está habilitado, reproduce silenciosamente un .wavarchivo codificado en base64 para evitar que la pestaña del navegador del depurador entre en modo de bajo consumo, lo que puede afectar el rendimiento de websocket. Esto evitará eficazmente la advertencia que describe.

Aleclarson
fuente
4

Creo que la respuesta aceptada ya no es precisa (al menos para React Native v0.57 +).

El código correcto es ahora:

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

Haga referencia a esto de los documentos oficiales de React Native:

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

Stud Sterkel
fuente
2

Estoy en Macbook. Solucioné este problema colocando la ventana del depurador en el escritorio principal, en lugar de tenerla en un escritorio separado que cree que está en "Fondo".

ingrese la descripción de la imagen aquí

Parth Chokshi
fuente
0

Ayer me apareció el mismo problema. Buscar en Google lo llevó a esta publicación de Stack Overflow . En una de las respuestas (por adriansprod), sugirió:

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

Es probable que su depurador React Native no esté en su propia ventana del navegador Chrome, sino en una pestaña del navegador Chrome. Sacarlo como su propia ventana, como sugiere adriansprod, solucionó esto por mí.

alee8
fuente
0

El mensaje de error (muy molesto) es manejado por debuggerWorker.js, que lamentablemente no incluye ninguna opción de configuración para desactivar el mensaje. Entonces, por el momento, no hay formas de configurar su aplicación para deshabilitar el mensaje.

El código relacionado se describe a continuación ( se aplica la licencia original ):

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).'
    );
  };
})();

Como puede ver, no se utilizan opciones de configuración, todo el asunto tiene un alcance local (consulte el enlace de repositorio anterior para obtener más detalles).

Etheryte
fuente
0

También me enfrenté al mismo problema hace una semana y finalmente encontré una solución que funciona excelente para mí

Se llama reactotron, puede encontrarlo aquí: https://github.com/reactotron/reactotron y puede usarlo para:
* ver el estado de su aplicación
* mostrar solicitudes y respuestas de API
* realizar evaluaciones comparativas de rendimiento rápido
* suscribirse a partes de su el estado de la aplicación
* muestra mensajes similares a console.log
* rastrea errores globales con rastreos de pila asignados en origen, incluidos rastreos de pila de saga!
* Acciones de despacho como un experimento de control mental dirigido por el gobierno
* intercambio en caliente estado de su aplicación
* seguimiento de sus sagas

Espero que mi publicación haya sido útil y que nunca se enfrente a esta tediosa advertencia.

Buena suerte

Probojnik
fuente
0

Yo uso esto en index.js

if (__DEV__) {
  console.ignoredYellowBox = [
    'Remote debugger',
    'Warning: isMounted… is deprecated',
    'Module RCTImageLoader'
  ];
}
Mike S.
fuente
También importéimport { AppRegistry, YellowBox } from 'react-native';
Mike S.
Aunque acabo de volver a probar esto en una nueva aplicación y no parece estar funcionando. Me pregunto si algo cambió 0.57.4.
Mike S.
0

puede haber posibilidades de que otro depurador ya esté conectado al empaquetador. así que cierra tu terminal y depura Google Chrome.

Si está utilizando el administrador de paquetes de Visual Studio, no inicie el administrador de paquetes con el comando de Mac / otro sistema operativo.

así que cierre todos los terminales y deténgase en el administrador de paquetes y el depurador de Google Chrome. iniciar el proceso de nuevo.

Deepak Singh
fuente