Nun, das sind Fehlermeldungen, wir werden während der Entwicklung Fehlermeldungen erhalten und das Lesen ist eine sehr wichtige
Sache, da sie uns wirklich helfen können, herauszufinden, was falsch ist.
Kommen wir nun zu Fehlern, die nicht unbedingt Fehlermeldungen auslösen oder bei denen Sie etwas tiefer graben
müssen, um die Grundursache zu finden. Sagen wir das jetzt zum Beispiel in der App. js, wir wollten herausfinden,
ob wir hier wirklich das richtige Ziel löschen. Um herauszufinden, ob dies der Fall ist, können wir hier
unsere Ziel-ID auf der Konsole protokollieren und möglicherweise einen Informationstext hinzufügen, der davor gelöscht werden soll, damit wir einige Informationen darüber erhalten, was hier gedruckt wird,
und dann haben wir natürlich unsere Liste Ziele hier, das ist also die Liste, ohne dass das Element gelöscht wird, und dann
möchten wir, dass es danach gelöscht wird, aber
wie diese Funktion zum Festlegen des
Status hier am Ende funktioniert, wie React den Status aktualisiert und nur die Kursziele
erneut druckt In dieser Zeile erhalten Sie nicht die bereits aktualisierten Kursziele, sondern
diese werden erst im nächsten Renderzyklus aktualisiert.
Wir werden unsere Kursziele dort also nicht sehen, aber das ist kein Problem.
Wir müssen dies nur an einer anderen Stelle protokollieren. Wir protokollieren dies hier in unserer Komponente. Dort protokollieren wir die Kursziele und diese gesamte
Komponente wird neu gerendert, wenn wir unsere Kursziele mit dieser Zeile aktualisieren.
Dies
wird erneut ausgeführt, sodass wir möglicherweise auch ein kleines Konsolenprotokoll hinzufügen und die Komponente neu rendern können, damit wir Wissen Sie, dass die
Kurszielliste, die wir nach dieser drucken, die Liste nach jedem erneuten Rendern ist, während die Kurszielliste, die wir nach dieser
zu löschenden Zeile drucken, die Kurszielliste ist, bevor wir ein Kursziel gelöscht haben
und jetzt Wir haben einige Konsolenprotokollanweisungen hinzugefügt, mit denen wir
in den Fluss unseres Codes eintauchen können. Wenn ich das speichere, wird die App neu gestartet und wir sehen
bereits eine sinnvolle Neu-Rendering-Komponente. Sie wird beim ersten Mal gerendert und wir sehen, dass wir ein leeres Array
haben, das auch Sinn macht, weil wir nichts hinzugefügt haben.
Fügen wir nun ein neues Ziel hinzu, vielleicht hier auf Android, und beenden Sie den Kurs. Wenn wir das tun, sehen wir, dass die Komponente neu
gerendert wird, was Sinn macht, weil wir etwas hinzugefügt haben, und vor allem für das andere erneute Rendern,
bei dem wir ein Element hinzugefügt haben, sehen wir dieses Element hier im Array, wir
sehen auch die ID von dieser Gegenstand und der Wert, der in Ordnung aussieht. Fügen wir nun vielleicht ein weiteres Element hinzu, lernen React Native und fügen dieses hinzu. Wir sehen dies
hier. Wir sehen gerade, dass es sich um ein Array mit
zwei Elementen handelt, wenn wir dies hier erweitern. Jetzt können wir in unseren Code schauen und jetzt ein Element löschen, indem
wir darauf klicken, und das Kurselement mit der ID 0 beenden. 818 und so weiter.
Wenn ich also auf "Kurs beenden" klicke, wird
er entfernt. Es scheint also korrekt zu funktionieren, und unser Konsolenprotokoll
bestätigt dies. Wir rendern neu. Wir rendern unser Array nur mit dieser ID neu, also mit dem anderen Ein Element, das wir
nicht gelöscht haben, und dort oben sehen wir, dass es gelöscht wird, ist diese ID hier.
Dieses Protokoll stammt aus dieser Zeile, bevor wir es gelöscht haben.
Es ist also immer noch enthalten, aber für den nächsten Re-Render-Zyklus sehen wir dies ID hier ist in der Tat nicht
mehr enthalten.
Das ist natürlich ein erfundenes Beispiel.
Wir sehen natürlich, dass sich das hier richtig verhält, aber stellen Sie sich einfach vor, Sie haben einen
komplexeren Ablauf in Ihrem Code, den Sie debuggen möchten. Dann können solche Konsolenprotokollanweisungen Ihnen wirklich helfen, zu verstehen, wie
Ihre Code wird ausgeführt, wie oft er ausgeführt wird und ob die richtigen Werte verwendet werden.
Konsolenprotokollanweisungen können also sehr hilfreich sein, wenn Sie sie in Ihren Code kopieren. Vergessen Sie
jedoch nicht, sie eventuell auch zu entfernen, damit Sie Ihren Code nicht mit Tonnen von Konsolenprotokollanweisungen überfüllen.