2016-03-05 13 views
5

Sto lavorando a un'app IOS nativa reattiva e questa app talvolta genera un messaggio di avviso "setState (...) Può aggiornare solo un componente montato o montato. ... ", capisco di cosa tratta il messaggio, è causato dalla lunga chiamata AJAX.Come disattivare il messaggio di avviso nativo nella parte inferiore

Considerando questo avviso non causerà alcun problema serio per l'APP, non voglio passare molto tempo per risolverlo in questo momento, questo messaggio di avviso verrà visualizzato sia nel simulatore che nel cellulare durante il caricamento dal server di sviluppo. La mia domanda è se il messaggio di avviso verrà comunque richiesto in modalità prodotto (carica da file pre-raggruppato)? Se verrà ancora visualizzato, come disabilitare questo messaggio di avviso dalla configurazione?

Grazie.

+0

nella modalità di rilascio dev = false i messaggi non vengono visualizzati, quindi gli utenti dell'app store non vedranno i messaggi –

risposta

1

Per disattivare solo il messaggio setState

Il "setState (...) Può aggiornare solo un componente montato o montare." è gettato da 4 file possibili:

  1. node_modules/reagire/dist/reagire-con-addons.js
  2. node_modules/reagire/dist/react.js
  3. node_modules/reagire/lib/ReactNoopUpdateQueue js
  4. node_modules/reagiscono/lib/ReactUpdateQueue.js

non so quale vostro innescato, ma è possibile modificare questi file s per non mostrare l'avvertimento. Se la tua preoccupazione è per i tuoi utenti, cioè in modalità di rilascio, il flag dev è falso, il che significa che non vedrà alcun messaggio di avviso.

Per disabilitare tutte le avvertenze

Per disattivare gli avvisi, basta cambiare questo nel vostro AppDelegate.m:

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

a

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

Se si sta utilizzando il pre -bundled file devi specificare dev come false quando si raggruppa:

+0

che funzioneranno, ma disattiveranno anche tutti gli altri avvisi, alcuni dei quali sono molto utili –

+0

Grazie mille per la risposta, funziona. – mailme365

+0

qualcuno sa qual è l'equivalente di Android per jsCodeLocation = [NSURL URLWithString: @ "http: // localhost: 8081/index.ios.bundle? Platform = ios & dev = false"]; – Podgeypoos

0

Solo per rispondere alla domanda che hai chiesto, no, l'avviso non verrà visualizzato quando carichi da un file pre-raggruppato (come quando si esegue il test con TestFlight).

7

la soluzione migliore è quello di scrivere questo nel vostro index del file:

console.disableYellowBox = true; 
1

Per disattivare solo questo messaggio di avviso utilizzare il seguente codice su eventuali file

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