Wenn wir also unseren Administrationsbereich besuchen und dann ein neues Produkt hinzufügen möchten, erhalten wir diesen Bereich hier.
Wir bekommen den Fehler, dass get param keine Funktion ist.
Und tatsächlich wurde mit der Reaktivierungsfunktion "Get fünf Tage", mit der Sie die Parameter für eine
bestimmte Navigationsaktion abrufen würden, entfernt.
Mal sehen, was wir sonst noch dafür tun können.
Gehen wir zu diesem hinzugefügten Produktbildschirm, dem Bildschirm, den wir besuchen möchten,
der hier fehlschlägt. Wir verwenden hier sicherlich get param, aber auch hier in der Hauptkomponente des hinzugefügten Produktbildschirms.
Jetzt mit Reaktivierung 5 gibt es keine get param Funktion mehr.
Stattdessen gibt es jetzt eine neue Requisite neben dieser Navigations-Requisite, für die Sie auch noch bestimmte Aktionen ausführen müssen, z. B.
weg navigieren, aber Sie haben jetzt eine neue Requisite, eine Wal-Rechnung, die die Root-Requisite ist, die vorher nicht
verfügbar war.
Jetzt gibt es auf dieser Root-Requisite einen so genannten Stammschlüssel.
Eltern bekommen keine Eltern Es ist keine Funktion, es ist nur ein Schlüssel namens Eltern, der ein
Objekt mit all Ihren Eltern enthält, die Sie als Schlüsselwertpaare erhalten.
Hier können wir also bequem den Elternteil extrahieren, den wir erhalten möchten.
Also bevor ich das Produkt I bekommen wollte. D. D. param.
Jetzt greifen wir auf Requisiten Route Perms Produkt I zu. D. D. und das sollte funktionieren.
Abhängig von Ihrer Anwendung erhalten Sie möglicherweise nicht immer einen Wert für diesen Parameter.
Manchmal ist es also undefiniert, und aus diesem Grund können Sie natürlich alle prüfen, ob dies
null oder undefiniert ist, bevor Sie versuchen, es zu verwenden.
Wenn es darum geht, Eltern festzulegen, die hier auch in dieser Komponente verwendet wurden, existiert dies immer noch, aber aus dem Grund,
dass wir es hier verwenden, müssen wir es nicht mehr verwenden.
Hier haben wir es als Workaround für Q verwendet. Grundsätzlich Daten von unserem Komponentenkörper abrufen.
Also aus unserer Komponentenfunktion in die Navigationsoptionen dort unten.
Richtig.
Die Submit-Funktion und auch hier unser Produkt I. D. D. Wir haben diese Daten jetzt tatsächlich für
das Produkt I extrahiert. D. D. Das ist in Ordnung, da dies eine allgemeine routenspezifische Information ist,
an der wir interessiert sind.
Wir können immer noch so extrahieren, aber die Funktion von unserer Komponente auf die Navigationsoptionen zu übertragen,
wie wir es zuvor getan haben, war wirklich ein bisschen hackig und nicht wirklich, wie wir das machen wollen.
Im Moment werde ich jedoch den gleichen Ansatz wie zuvor beibehalten, aber eines muss sich ändern.
Wir haben keine Parameter mehr.
Stattdessen ist nav data ein Objekt, das auch diese neue Root-Requisite dieses neuen Root-Objekts hat, sodass
wir auf nav data dot root dot perms dot submit zugreifen und die Submit-Funktion wie diese und dieselbe dort unten erhalten können.
Hier haben wir Punktwurzel Punktpyramiden Punktprodukt I. D. D. so mit all dem aus dem Weg.
Wenn wir dies jetzt speichern, wird dies hier neu erstellt. Wenn wir jetzt erneut zu admin gehen und auf dieses
Symbol klicken, wird eine Fehlermeldung angezeigt, dass undefined kein Objekt ist, als versucht wurde, die übermittelten
Navigationsdaten-Root-Perms auszuwerten.
Also, was ist da los?
Das Problem, mit dem wir hier konfrontiert sind, ist, dass Eltern nicht immer definiert sind, wenn dieser Bildschirm ohne Eltern geladen wird, wie es der Fall
ist, wenn wir uns im Anzeigenproduktmodus befinden, was wir sind, wenn wir nur auf diese Schaltfläche oben
rechts geklickt haben Ecke.
Wenn also keine Eltern an den Bildschirm übergeben werden, enthält dieser gesamte Elternschlüssel hier einen undefinierten
Wert.
Es enthält kein leeres Objekt ohne Eltern.
Es selbst ist stattdessen undefiniert.
Das ist also wichtig zu beachten.
Eltern selbst sind undefiniert, wenn es keine Eltern gibt.
Und wenn wir diesen Bildschirm öffnen, um ein Produkt hinzuzufügen, gibt es anfangs keine Eltern. Dieser Submit-Parameter
wird anfangs nicht festgelegt, da dies nur innerhalb der Komponente erfolgt.
Also nachdem der Bildschirm geladen wurde und Produkt I. D. D. definitiv nicht festgelegt, weil wir nicht bearbeiten,
sondern hinzufügen.
Es gibt also kein Produkt I. D. D. wird in diesen Bildschirm eingespeist, wenn wir dorthin navigieren.
Wie stellen wir also sicher, dass wir dann keinen Fehler erhalten?
Nun, wir müssen einfach überprüfen, ob die Eltern selbst definiert sind oder nicht.
Und wir könnten dies hier unten tun, indem wir dies umschreiben.
Also haben wir zuerst versucht, auf die Eltern zuzugreifen, und dann verwenden wir dies als Bedingung in einem ternären Ausdruck und sagen, ob Daten
wahr sind, was nur dann der Fall ist, wenn sie definiert sind.
Wenn dies wirklich der Fall ist, möchten wir versuchen, auf die Übermittlung der Eltern zuzugreifen, da wir dann wissen, dass die Eltern
zumindest nicht auf der Suche sind und andernfalls die Übermittlungsfunktion festlegen.
Nehmen wir jetzt an, wir können diesen oder jenen Tag für den Header-Titel wiederholen.
Jetzt haben wir hier bereits einen ternären Ausdruck.
Wir können diese Ausdrücke verschachteln, aber um sie besser lesbar zu machen, erfolgt die Aufteilung über mehrere Zeilen.
Und ich werde meine unhöflichen Eltern hier haben, wo ich im Grunde prüfe, ob irgendwelche unhöflichen NAF-Daten eine Sache sind, wenn es so
ist, dann werde ich die Eltern in dieser unhöflichen Elternkonstante speichern.
Ansonsten setze ich dies auf ein leeres Objekt.
Nehmen wir jetzt an, wir können hier unhöfliche Eltern verwenden, und jetzt ist es entweder ein leeres Objekt. In diesem Fall können
wir auf Produkt I zugreifen. D. D. ohne Fehler, aber wir werden als
Ergebnis undefiniert, daher befinden wir uns im Produktmodus oder wenn Eltern gefunden werden.
Dann setze ich das eigentliche Elternobjekt als Wert für unhöfliche Eltern und wir greifen dann darauf zu, ob die tatsächlichen Eltern dort
Einwände erheben.
In jedem Fall sollte dies also nicht scheitern und wir können etwas Ähnliches in der Komponente tun, die wir natürlich auch
versuchen, als unsere Eltern zu handeln.
Hier sollten wir also auch prüfen, ob dies tatsächlich der Fall ist.
Wenn es definiert ist und wenn es definiert ist, werden die Eltern und ansonsten die Produktideen auf NULL gesetzt.
Auf diese Weise können Sie dies umgehen.
Und wenn wir jetzt die Anwendung sichern und neu laden, können wir zum Administratorbildschirm gehen, auf diese Schaltfläche klicken
und diesen Bildschirm hier erfolgreich laden, um ein Produkt hinzuzufügen.
Jetzt werde ich dies schnell mit einem Buch testen. Geben Sie das Bild ein, das Sie hier sind, und einen Preis hier und
eine Testbuchbeschreibung hier.
Und damit kann ich dies einreichen und das funktioniert im Allgemeinen hier ist unser Buch.
Klicken Sie nun auf Bearbeiten. Wir laden diesen Bearbeitungsbildschirm mit den Buchdaten, damit alles gut aussieht. Wenn ich
Well lösche, funktioniert das nicht.
Ich bekomme hier einen Fehler.
Wir müssen uns darum kümmern, aber zumindest funktioniert es jetzt richtig, wenn es um die Eltern geht.
Ich habe jedoch erwähnt, dass es eine Sache gibt, die wir an unhöflichen Eltern verbessern können, wenn wir hier einen Fall
wie diesen mit der Submit-Funktion haben, bei der wir Eltern missbrauchen, um Daten vom Komponentenkörper zu unseren Navigationsoptionen zu
erhalten, weil wir jetzt mit React Navigation 5 haben ein schöner Weg, um dies zu erreichen.