Livre-se do aviso “O depurador remoto está em uma guia em segundo plano” no React Native


86

Comecei um novo projeto React Native e continuo recebendo o seguinte aviso:

O depurador remoto está em uma guia em segundo plano, o que pode fazer com que os aplicativos funcionem lentamente. Corrija isso colocando a guia em primeiro plano (ou abrindo-a em uma janela separada).

É um pouco chato, então eu quero saber como posso me livrar disso? Estou executando o depurador no Chrome e mudei-o para uma janela separada, mas não ajudou.


Para outros que estão lendo isso, acho que você precisa de um depurador mais rápido em vez de ignorar esses avisos. A resposta abaixo de @varunvs para usar o react-native-debugger remove o aviso e reduz o tempo de saída do seu dispositivo
Vineeth Pradhan

3
A resposta correta ( abaixo ) agora é simplesmente marcar a caixa de seleção "Manter prioridade" na página do depurador.
orome

Respostas:


148

Para se livrar do aviso em todo o projeto, adicione o seguinte ao seu arquivo Javascript externo (na maioria das vezes, index.jspara React Native)

para reagir nativo v0.57+:

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

Consulte isso nos documentos oficiais do React Native:

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

reagente nativo v0.56 ou abaixo:

Adicione o seguinte logo no início do seu código:

console.ignoredYellowBox = ['Remote debugger'];

Fácil, simples e específico para aquele erro. Funciona para mim. Pode substituir qualquer texto que você quiser.


Adicionado pouco antes de minha instrução AppRegistry.registerComponent e funcionou! Obrigado
İlter Kağan Öcal

1
Eu coloquei esse código no meu nível superior index.js. Funciona como um encanto. if (__DEV__) { console.ignoredYellowBox = ['Remote debugger']; }
Mike S.

@MikeS. Recebi um aviso [eslint] '__DEV__' is not defined. (no-undef). Você também entende?
anticafe

@anticafe Não, não recebo nenhum aviso. Portanto, não tenho certeza de qual seria o problema.
Mike S.

Ei, estou usando, YellowBox.ignoreWarnings(['Remote debugger', 'Require cycles']);mas os dois avisos ainda estão aparecendo na janela do console. Estou usando a versão 0.61.4 do RN. Por favor, ajude
Archana Sharma


24

Você pode usar o React Native Debugger disponível em https://github.com/jhen0409/react-native-debugger. É um aplicativo independente para depurar aplicativos React Native durante o desenvolvimento.


3
Obrigado, com certeza vou experimentar, mas não é exatamente o que estou procurando como resposta porque não resolve o aviso.
Estranhamente

1
Eu tive o problema semelhante, mas o uso do depurador React Native resolveu.
varunvs

Obrigado, optei por esta solução porque manter o depurador em suas próprias janelas não apaga o aviso para mim o tempo todo
mxmtsk

2
Instalar outra ferramenta apenas para remover um aviso não é a melhor solução, e essa outra ferramenta tem seus próprios problemas. A resposta correta é a de kjonsson abaixoconsole.ignoredYellowBox = ['Remote debugger'];
laurent

1
@ this.lau_ Isso não apenas esconde o aviso e não corrige o problema real? Acredito que o problema que estamos tentando resolver é consertar o desempenho lento do aplicativo durante a depuração. Esconder um aviso à força não o corrigirá.
varunvs

8
  1. http://localhost:*****/debugger-uipara a janela separada.
  2. Reinicie Remote JS Debugging.

6

É devido ao número de guias que são abertas no navegador com a guia de UI do React Native Remote Debugger . Eu também enfrentei o mesmo problema.

Para superar essa mensagem de aviso, você pode usar qualquer um dos seguintes métodos:


6

Conforme mencionado por @jakeforaker em um dos comentários. O aviso desapareceu simplesmente abrindo o depurador remoto em uma janela separada em vez de uma guia na janela existente do navegador (no entanto, você precisa recarregar o simulador).

Como diz o aviso, manter o depurador remoto na mesma janela que as outras guias

pode fazer com que os aplicativos funcionem lentamente

Então eu acho que simplesmente suprimir o aviso mencionado por @kjonsson: - console.ignoredYellowBox = ['Remote debugger'];não parece ser a melhor solução.


5

Esse problema foi resolvido quando fechei todas as janelas abertas do Chrome e iniciei a remoção de depuração novamente. Eu já tinha aberto as janelas do Chrome, então 'parece' que tê-las abertas mata o desempenho.


5

Desde este compromisso em março de 2017, você pode habilitar a caixa de seleção Manter prioridade . Quando ativado, ele reproduz silenciosamente um .wavarquivo codificado em base64 para evitar que a guia do navegador do depurador entre no modo de baixo consumo de energia, o que pode afetar o desempenho do websocket. Isso impedirá efetivamente o aviso que você descreve.



2

Estou no Macbook. Corrigi esse problema trazendo a janela do depurador para a área de trabalho principal, em vez de colocá-la em uma área de trabalho separada, que ela pensa estar em "Segundo plano".

insira a descrição da imagem aqui


0

Tive o mesmo problema ontem. Pesquisar no Google levou a esta postagem Stack Overflow . Em uma das respostas (por adriansprod), ele sugeriu:

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

É provável que o depurador React Native não esteja em sua própria janela do navegador Chrome, mas em uma guia do navegador Chrome. Puxá-lo para fora como sua própria janela, como sugere o adriansprod, consertou isso para mim.


0

A (muito irritante) mensagem de erro é tratada por debuggerWorker.js , que infelizmente não inclui nenhuma opção de configuração para desligar a mensagem. Portanto, por enquanto, não há como configurar seu aplicativo para desativar a mensagem.

O código relacionado é descrito abaixo ( licença original se aplica):

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 você pode ver, nenhuma opção de configuração é usada, todo o escopo é definido localmente (consulte o link de repositório acima para obter mais detalhes).


0

Eu também enfrentei o mesmo problema há cerca de uma semana e finalmente encontrei uma solução que funciona excelente para mim

É chamado reactotron, você pode encontrá-lo aqui - https://github.com/reactotron/reactotron e você pode usá-lo para:
* visualizar o estado do seu aplicativo
* mostrar solicitações e respostas da API
* realizar benchmarks de desempenho rápido
* inscrever-se em partes do seu estado do aplicativo
* exibe mensagens semelhantes a console.log
* rastreia erros globais com rastreamentos de pilha mapeados na origem, incluindo rastreamentos de pilha saga!
* despache ações como um experimento de controle mental administrado pelo governo
* troca a quente do estado do seu aplicativo
* monitore suas sagas

Espero que minha postagem tenha sido útil e você nunca se depare com esse aviso tedioso.

Boa sorte


0

Eu uso isso em index.js

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

Eu também importeiimport { AppRegistry, YellowBox } from 'react-native';
Mike S.

Embora eu apenas tenha testado novamente em um novo aplicativo e não pareça estar funcionando. Será que algo mudou em 0.57.4?
Mike S.


0

pode haver a chance de que outro depurador já esteja conectado ao empacotador. então feche seu terminal e depurador do google chrome.

se você estiver usando o gerenciador de pacotes do Visual Studio, não inicie o gerenciador de pacotes pelo comando de terminal do Mac / outro sistema operacional.

então feche todos os terminais e pare de seguir o gerenciador de pacotes e o depurador do Google Chrome. inicie o processo novamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.