Hoe verberg je de waarschuwingen in de React Native iOS-simulator?

Ik heb zojuist mijn React Native geüpgraded en nu heeft de iOS-simulator een heleboel waarschuwingen. Hoe verberg ik deze waarschuwingen naast het oplossen ervan, zodat ik kan zien wat eronder zit?


Antwoord 1, autoriteit 100%

Volgens React Native Documentatiekunt u waarschuwingsberichten verbergen door disableYellowBoxnaar trueals volgt:

console.disableYellowBox = true; 

Update: React Native 0.63+

console.disableYellowBoxis verwijderd en u kunt nu het volgende gebruiken:

import { LogBox } from 'react-native';
LogBox.ignoreLogs(['Warning: ...']); // Ignore log notification by message
LogBox.ignoreAllLogs();//Ignore all log notifications

om alle logmeldingen te negeren


Antwoord 2, autoriteit 42%

Een betere manier om selectief bepaalde waarschuwingen te verbergen (die voor onbepaalde tijd verschijnen na een upgrade naar de nieuwste en beste RN-versie) is door console.ignoredYellowBoxin een algemeen JS-bestand in uw project. Bijvoorbeeld, na het upgraden van mijn project vandaag naar RN 0.25.1 zag ik veel…

Waarschuwing: ReactNative.createElement is verouderd…

Ik wil nog steeds nuttige waarschuwingen en foutmeldingen van React-Native kunnen zien, maar ik wil deze specifieke waarschuwing vernietigen omdat deze afkomstig is van een externe npm-bibliotheek die de belangrijkste wijzigingen in RN 0.25 nog niet heeft verwerkt. Dus in mijn App.js voeg ik deze regel toe…

// RN >= 0.63
import { LogBox } from 'react-native';
LogBox.ignoreLogs(['Warning: ...']);
// RN >= 0.52
import {YellowBox} from 'react-native';
YellowBox.ignoreWarnings(['Warning: ReactNative.createElement']);
// RN < 0.52
console.ignoredYellowBox = ['Warning: ReactNative.createElement'];

Op deze manier krijg ik nog steeds andere fouten en waarschuwingen die nuttig zijn voor mijn ontwikkelomgeving, maar ik zie die specifieke niet meer.


Antwoord 3, autoriteit 8%

Om de gele box-plaats uit te schakelen

console.disableYellowBox = true; 

overal in uw toepassing. Meestal in het hoofdbestand, dus het is van toepassing op zowel iOS als Android.

Bijvoorbeeld

export default class App extends React.Component {
     render() {
          console.disableYellowBox = true;
          return (<View></View>);
     }
}

Antwoord 4, autoriteit 5%

add this line in your app main screen.

console.disableYellowBox = true;

bijvoorbeeld:- in index.js-bestand

import { AppRegistry } from 'react-native';
import './src/utils';
import App from './App';
import { name as appName } from './app.json';
AppRegistry.registerComponent(appName, () => App);
console.disableYellowBox = true;

Antwoord 5, autoriteit 4%

In uw app.js-bestand onder de levenscyclusmethode van een component. zoals in componentDidmount()
je moet deze beide toevoegen, met uitzondering van een werkt niet.

console.ignoredYellowBox = ['Warning: Each', 'Warning: Failed'];
console.disableYellowBox = true;

Antwoord 6, autoriteit 4%

Voeg de volgende code toe aan uw index.js-bestand

console.disableYellowBox = true;

   import {AppRegistry} from 'react-native';
    import App from './App';
    import {name as appName} from './app.json';
    console.disableYellowBox = true;
AppRegistry.registerComponent(appName, () => App);

Antwoord 7, autoriteit 3%

Als u de app snelwilt demonstreren.

Als je ze in een bepaalde build wilt verbergen omdat je een demo doet of zoiets, kun je je Xcode-schema bewerken om er een release-build van te maken en deze gele waarschuwingen zullen niet verschijnen. Bovendien werkt je app veel sneller.

U kunt het schema voor uw simulator en uw echte apparaat als volgt bewerken:

  1. In Project in XCode.
  2. Product> Scheme> Edit Scheme...
  3. Verander Build Configurationvan Debugin Release.

Antwoord 8, autoriteit 2%

Voor degenen die deze kant op komen en proberen rode waarschuwingen van de console uit te schakelen, die absoluut nutteloze informatie geven, vanaf 17 feb, kun je deze regel code ergens toevoegen

console.error = (error) => error.apply;

Alle console.error

uitschakelen


Antwoord 9, autoriteit 2%

console.disableYellowBox = true;

dit werkte voor applicatieniveau. Zet het ergens in het index.js-bestand


Antwoord 10, autoriteit 2%

Voor mij werkten onderstaande regels momenteel, ik gebruik react native 0.64

 import { LogBox } from 'react-native';
  LogBox.ignoreLogs(['Warning: ...']); //Hide warnings
  LogBox.ignoreAllLogs();//Hide all warning notifications on front-end

Als je je waarschuwing toevoegt om precies aan te geven welke waarschuwing je moet onderdrukken, moet je exacthet waarschuwingsbericht toevoegen, zoals (willekeurig voorbeeld)

LogBox.ignoreLogs([
  'Warning: Failed prop type: Invalid props.style key `tintColor` supplied to `Text`.',
]);

Het gebruik van enkele aanhalingstekens in plaats van backticks rond tintColorof Textzal bijvoorbeeld niet werken.


Antwoord 11, autoriteit 2%

Ik ontdekte dat zelfs wanneer ik specifieke waarschuwingen (gele-box-berichten) uitschakelde met behulp van de bovengenoemde methoden, de waarschuwingen werdenuitgeschakeld op mijn mobiele apparaat, maar ze werden nog steeds op mijn console vastgelegd, wat erg vervelend en afleidend was.

Om te voorkomen dat waarschuwingen op uw console worden vastgelegd, kunt u eenvoudig de methode warnop het console-object overschrijven.

// This will prevent all warnings from being logged
console.warn = () => {};

Het is zelfs mogelijk om alleen specifieke waarschuwingen uit te schakelen door het opgegeven bericht te testen:

// Hold a reference to the original function so that it can be called later
const originalWarn = console.warn;
console.warn = (message, ...optionalParams) => {
  // Insure that we don't try to perform any string-only operations on
  // a non-string type:
  if (typeof message === 'string') {
    // Check if the message contains the blacklisted substring
    if (/Your blacklisted substring goes here/g.test(message))
    {
      // Don't log the value
      return;
    }
  }
  // Otherwise delegate to the original 'console.warn' function
  originalWarn(message, ...optionalParams);
};

Als u geen reguliere expressie kunt (of wilt) gebruiken om de tekenreeks te testen, werkt de methode indexOfnet zo goed:

// An index of -1 will be returned if the blacklisted substring was NOT found
if (message.indexOf('Your blacklisted substring goes here') > -1) {
  // Don't log the message
  return;
}

Houd er rekening mee dat deze techniek alleberichten filtert die door de warn-functie gaan, ongeacht waar ze vandaan komen.
Wees daarom voorzichtig dat u geen al te royale zwarte lijst opgeeft die andere zinvolle fouten onderdrukt die ergens anders vandaan kunnen komen dan React Native.

Ik geloof ook dat React Native de methode console.errorgebruikt om fouten te loggen (red-box-berichten), dus ik neem aan dat deze techniek kan worden gebruikt om specifieke fouten uit te filteren als goed.


Antwoord 12

Om het gele vak uit te schakelen, plaatst u console.disableYellowBox = true;ergens in uw toepassing. Meestal in het hoofdbestand, dus het is van toepassing op zowel iOS als Android.

Raadpleeg voor meer informatie het officieel document


Antwoord 13

console.disableYellowBox = true;


Antwoord 14

RN >= 0,62

import {LogBox} from 'react-native'

voeg onder de import toe

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

in plaats van ‘…’,
u kunt de waarschuwingen schrijven die u wilt verbergen.
Bijvoorbeeld,
Ik had de waarschuwing dat VirtualizedLists nooit zou mogen zijn ….
dan kan ik schrijven als

LogBox.ignoreLogs(['VirtualizedLists']);

als u nog een fout wilt toevoegen, kunt u schrijven als

LogBox.ignoreLogs(['VirtualizedLists','Warning:...']);

Antwoord 15

console.ignoredYellowBox = [‘Waarschuwing: elk’, ‘Waarschuwing: mislukt’];


Antwoord 16

In uw AppDelegate.m-bestand kunt u deze regel wijzigen:

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];

en vervang dev=truedoor dev=falseaan het einde.


Antwoord 17

Gerelateerd: Xcode-waarschuwingen van React Native-bibliotheek onderdrukken

(maar niet voor je eigen code)

waarom:bij het initialiseren van een nieuwe RN-app bevat het Xcode-project bijna 100 waarschuwingen die storende ruis zijn (maar anders waarschijnlijk onschadelijk)

oplossing:stel alle waarschuwingen uitin op jaonder Build Settingsvoor de relevante doelen.

voer hier de afbeeldingsbeschrijving in

Waarschuwingen in Xcode van frameworks uitschakelen

https://github.com/facebook/react-native/issues/11736


Antwoord 18

Ik zet graag de console.disableYellowBox = true in de bestandsroot, zoals App.
Maar dit is net nu ik in de ontwikkelingsfase zit.

Other episodes