2016-03-05 8 views
5

Ich arbeite an einer Reaktion native iOS-App, und diese App wird manchmal eine Warnmeldung "setState (...) Kann nur eine gemountete oder Montagekomponente aktualisieren. ... ", ich verstehe, worum es in der Nachricht geht, sie wird durch den langen AJAX-Anruf verursacht.Wie zu deaktivieren reagieren native Warnmeldung am Ende

In Anbetracht dieser Warnung wird kein ernstes Problem für die APP verursachen, ich möchte nicht viel Zeit verbringen, um es in diesem Moment zu beheben, wird diese Warnmeldung in beiden Simulator und Handy beim Laden von Entwicklungsserver angezeigt. Meine Frage ist, ob die Warnmeldung immer noch im Produktmodus (Laden von vorgebündelter Datei) erscheint? Wenn es noch angezeigt wird, wie diese Warnmeldung von der Konfiguration deaktiviert wird?

Danke.

+0

im Release-Modus dev = false die Nachrichten verwenden werden nicht angezeigt, so dass Ihre App-Shop-Benutzer die Nachrichten –

Antwort

1

Um nur die setState Nachricht

Das "setState (...) nur eine bereitgestelltes oder Befestigungskomponente aktualisieren." Deaktivieren

  1. node_modules/reagieren/dist/reagieren-mit-addons.js
  2. node_modules/reagieren/dist/react.js
  3. node_modules/reagieren/lib/ReactNoopUpdateQueue: von 4 möglichen Dateien geworfen Js
  4. node_modules/reagieren/lib/ReactUpdateQueue.js

ich weiß nicht, welche ausgelöst bei Ihnen, aber Sie können diese Datei ändern s um die Warnung nicht anzuzeigen. Wenn es sich um Ihre Benutzer handelt, also im Freigabemodus, dann ist das Dev-Flag falsch, was bedeutet, dass keine Warnmeldungen angezeigt werden.

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

zu

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

Wenn Sie die Pre verwendet sind:

Um alle Warnungen zu deaktivieren

die Warnungen zu deaktivieren, dies nur in Ihrem AppDelegate.m ändern gebündelte Datei müssen Sie beim Bündeln dev als false angeben:

react-native bundle --dev false --entry-file index.ios.js --bundle-output ios/main.jsbundle --platform ios 
+0

nicht sehen, die funktionieren werden, aber auch alle anderen Warnungen, von denen einige sehr nützlich sind –

+0

Vielen Dank für die Antwort, es funktioniert. – mailme365

+0

Jeder weiß, was das Android-Äquivalent zu jsCodeLocation = [NSURL URLWithString: @ "http: // localhost: 8081/index.ios.bundle? Plattform = IOS & dev = false"]; – Podgeypoos

0

Nur um die Frage zu beantworten, die Sie gestellt haben, nein, die Warnung wird nicht angezeigt, wenn Sie von einer vorgebündelten Datei laden (wie beim Testen mit TestFlight).

7

die bessere Lösung ist dies in Ihrer index Datei zu schreiben:

console.disableYellowBox = true; 
1

So deaktivieren Sie nur diese Warnmeldung den folgenden Code auf mögliche Dateien

console.ignoredYellowBox = ['Warning: setState(...)'];