Per questo sono tornato in questa applicazione su cui abbiamo lavorato, questa applicazione di obiettivi in cui possiamo aggiungere
alcuni obiettivi qui e questo è il codice che abbiamo scritto lì, non ho cambiato nulla lì.
Ora lascia che mostri le diverse cose che potrebbero andare storte e come le risolvi.
Quindi cominciamo semplici, diciamo
che abbiamo un semplice errore di sintassi, qui in cui apriamo il nostro modale alla fine impostando la modalità
add su
true, permettimi di rimuovere quella parentesi di chiusura. Ora questo è un chiaro errore di sintassi, è un
errore che possiamo e dovremmo assolutamente evitare perché noi come sviluppatori abbiamo fatto un chiaro errore.
Ora il bello è che anche il nostro IDE lo riconosce e ci dà un avvertimento qui, anche se purtroppo
l'errore che sta mostrando qui non è del
tutto corretto, dice che si aspetta una virgola, beh
in realtà non è il vero problema, il vero problema è un parentesi mancante.
Tuttavia, ci viene l'idea che qualcosa non va
qui e mentre devi ancora pensare al problema e non puoi usare ciecamente quella soluzione guardando quel
codice, a un certo punto dovresti scoprire che manca una parentesi.
Anche se lo dimentichi e salvi questo, diciamo, allora il bundle Javascript verrà creato qui, come vedi
ho lanciato questo su Android e iOS e ora stiamo ottenendo questa schermata di errore rossa di cui
stavo parlando e di nuovo
qui, possiamo semplicemente leggere il messaggio di errore.
Ci sta ancora indicando la soluzione sbagliata, in attesa di una virgola ma ci indica la giusta riga
di codice, qui vedi evidenzia questo titolo del pulsante aggiungi nuova linea di obiettivo, quindi ci mostra ancora dove dovremmo
cercare e che il problema è probabilmente derivante da questa linea.
Otteniamo lo stesso errore tra l'altro in questa console e anche nei nostri strumenti di sviluppo expo qui, lì vedi lo stesso messaggio di
errore anche con un suggerimento sulla linea da cui proviene questo errore, quindi stai ricevendo un
sacco di aiuto per rintracciare questo problema. Ora qui, sfortunatamente, non ho ancora capito
che ho risolto questo errore e quindi qui, vediamo che si è bloccato, su iOS
su Android, non si
sta ricaricando. Ora su
Android, vediamo un comando che possiamo usare per
ricaricare l'app, possiamo cliccare lì o premere due volte r per ricaricare ma non sta ancora raccogliendo la modifica qui anche
se l'ho riparata nel codice, quindi
una soluzione qui è basta semplicemente arrestare il pacchetto o riavviare npm start.
Ciò accade raramente ma a volte si interrompe e quindi semplicemente riavviare questo processo di avvio di npm
è la cosa da
fare e con quello, lo eseguirò di nuovo su Android premendo ae su iOS premendo i e ora questo
dovrebbe riavviare l'app su questi dispositivi .
Ancora una volta, questo accadrà raramente, ma a volte succede e puoi semplicemente riavviarlo
per farlo funzionare correttamente.
Ora, con quello in esecuzione di nuovo, lascia che ti mostri un esempio per un messaggio di errore che stai arrivando dove
non hai un errore di sintassi ma hai ancora un chiaro bug nel tuo codice.
Diciamo che quando aggiungiamo un obiettivo qui con il titolo dell'obiettivo, aggiungiamo un controllo in cui vediamo se la lunghezza del titolo dell'obiettivo è maggiore
di zero per verificare che il valore non sia vuoto o effettivamente che sia uguale a zero, il che significa
che l'utente non ha fatto Inserire un
titolo e in questo caso, ritorniamo, il che significa che non aggiungeremo questo obiettivo qui e non
chiuderemo il
modale, quindi ignoriamo l'input dell'utente perché è vuoto.
Potremmo voler mostrare un
messaggio di errore, ma per ora lo faremo in questo modo.
Ora, quando lo
facciamo,
generalmente funzionerà bene qui, giusto? Se lo salvo e torniamo qui, lo apro e faccio clic su Aggiungi, vedi che
non riesco ad aggiungere un obiettivo vuoto, devo inserire qualcosa affinché questo scompaia.
Ora diciamo nel nostro componente di input dell'obiettivo dove stiamo recuperando l'input dell'utente, dove
poi lo inoltriamo chiamando aggiungi obiettivo qui, ci dimentichiamo di farlo, inoltriamo null qui o non inoltriamo nulla perché
abbiamo semplicemente dimenticato di aggiungere qui. Ora la nostra app si avvia bene, non si
interrompe immediatamente perché non abbiamo un errore chiaro nel nostro codice, nessun errore di sintassi ma se inserisco qualcosa qui e faccio clic su Aggiungi, divento indefinito
non è un oggetto, valutando la lunghezza del titolo dell'obiettivo e
di nuovo, questo è un messaggio di errore che ci aiuta.
Ci informa che il problema ha a che fare con qualcosa che non è definito e che è correlato a
questo controllo della lunghezza del titolo dell'obiettivo
e quindi potresti immergerti nel luogo in cui accedi alla lunghezza del titolo dell'obiettivo e rintracciare il problema.
Quindi abbiamo problemi a raggiungere la lunghezza del titolo dell'obiettivo perché non è definito come sembra. Lo stiamo ottenendo qui, quindi l'errore non
è
certamente qui, ma andiamo nel punto in cui viene chiamato Aggiungi gestore degli obiettivi
alla fine.
Ora, se ricordi, lo stiamo passando al puntale su aggiungi obiettivo qui sull'input obiettivo, quindi dovremmo
probabilmente andare all'input obiettivo che puoi comunque tenere tenendo il comando o il controllo e
facendo clic sul nome del componente. Bene, chiediamo di aggiungere un obiettivo qui e oh, qui vediamo qual è l'errore. Ora, ovviamente, in questo caso ho costruito questo
errore qui, ma ottieni chiaramente il mio punto, questo è un errore che
potresti certamente avere nel tuo codice in cui ti sei dimenticato di aggiungerlo, dove potresti cambiare il modo
in cui funziona il tuo codice e hai dimenticato di regolare in tutti i posti e quindi, improvvisamente
stai ricevendo questo errore.
Ora il messaggio di errore ci ha aiutato a trovare il problema.