1 00:00:02,350 --> 00:00:15,370 Wenn wir also unseren Administrationsbereich besuchen und dann ein neues Produkt hinzufügen möchten, erhalten wir diesen Bereich hier. 2 00:00:15,430 --> 00:00:18,460 Wir bekommen den Fehler, dass get param keine Funktion ist. 3 00:00:18,460 --> 00:00:28,270 Und tatsächlich wurde mit der Reaktivierungsfunktion "Get fünf Tage", mit der Sie die Parameter für eine 4 00:00:28,270 --> 00:00:31,600 bestimmte Navigationsaktion abrufen würden, entfernt. 5 00:00:31,600 --> 00:00:35,170 Mal sehen, was wir sonst noch dafür tun können. 6 00:00:35,170 --> 00:00:41,800 Gehen wir zu diesem hinzugefügten Produktbildschirm, dem Bildschirm, den wir besuchen möchten, 7 00:00:41,890 --> 00:00:50,700 der hier fehlschlägt. Wir verwenden hier sicherlich get param, aber auch hier in der Hauptkomponente des hinzugefügten Produktbildschirms. 8 00:00:50,850 --> 00:00:55,740 Jetzt mit Reaktivierung 5 gibt es keine get param Funktion mehr. 9 00:00:55,770 --> 00:01:03,060 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. 10 00:01:03,060 --> 00:01:09,390 weg navigieren, aber Sie haben jetzt eine neue Requisite, eine Wal-Rechnung, die die Root-Requisite ist, die vorher nicht 11 00:01:09,390 --> 00:01:10,310 verfügbar war. 12 00:01:10,320 --> 00:01:17,490 Jetzt gibt es auf dieser Root-Requisite einen so genannten Stammschlüssel. 13 00:01:17,490 --> 00:01:23,820 Eltern bekommen keine Eltern Es ist keine Funktion, es ist nur ein Schlüssel namens Eltern, der ein 14 00:01:23,850 --> 00:01:28,340 Objekt mit all Ihren Eltern enthält, die Sie als Schlüsselwertpaare erhalten. 15 00:01:28,350 --> 00:01:32,310 Hier können wir also bequem den Elternteil extrahieren, den wir erhalten möchten. 16 00:01:32,310 --> 00:01:35,940 Also bevor ich das Produkt I bekommen wollte. D. D. param. 17 00:01:35,970 --> 00:01:41,980 Jetzt greifen wir auf Requisiten Route Perms Produkt I zu. D. D. und das sollte funktionieren. 18 00:01:42,150 --> 00:01:47,000 Abhängig von Ihrer Anwendung erhalten Sie möglicherweise nicht immer einen Wert für diesen Parameter. 19 00:01:47,010 --> 00:01:53,970 Manchmal ist es also undefiniert, und aus diesem Grund können Sie natürlich alle prüfen, ob dies 20 00:01:54,240 --> 00:01:59,100 null oder undefiniert ist, bevor Sie versuchen, es zu verwenden. 21 00:01:59,110 --> 00:02:08,680 Wenn es darum geht, Eltern festzulegen, die hier auch in dieser Komponente verwendet wurden, existiert dies immer noch, aber aus dem Grund, 22 00:02:08,710 --> 00:02:13,770 dass wir es hier verwenden, müssen wir es nicht mehr verwenden. 23 00:02:13,840 --> 00:02:20,650 Hier haben wir es als Workaround für Q verwendet. Grundsätzlich Daten von unserem Komponentenkörper abrufen. 24 00:02:20,650 --> 00:02:25,960 Also aus unserer Komponentenfunktion in die Navigationsoptionen dort unten. 25 00:02:25,960 --> 00:02:26,280 Richtig. 26 00:02:26,290 --> 00:02:33,130 Die Submit-Funktion und auch hier unser Produkt I. D. D. Wir haben diese Daten jetzt tatsächlich für 27 00:02:33,130 --> 00:02:38,710 das Produkt I extrahiert. D. D. Das ist in Ordnung, da dies eine allgemeine routenspezifische Information ist, 28 00:02:38,710 --> 00:02:39,580 an der wir interessiert sind. 29 00:02:39,800 --> 00:02:45,430 Wir können immer noch so extrahieren, aber die Funktion von unserer Komponente auf die Navigationsoptionen zu übertragen, 30 00:02:45,460 --> 00:02:51,460 wie wir es zuvor getan haben, war wirklich ein bisschen hackig und nicht wirklich, wie wir das machen wollen. 31 00:02:51,460 --> 00:02:56,640 Im Moment werde ich jedoch den gleichen Ansatz wie zuvor beibehalten, aber eines muss sich ändern. 32 00:02:56,650 --> 00:02:58,610 Wir haben keine Parameter mehr. 33 00:02:58,700 --> 00:03:06,040 Stattdessen ist nav data ein Objekt, das auch diese neue Root-Requisite dieses neuen Root-Objekts hat, sodass 34 00:03:06,280 --> 00:03:15,910 wir auf nav data dot root dot perms dot submit zugreifen und die Submit-Funktion wie diese und dieselbe dort unten erhalten können. 35 00:03:15,920 --> 00:03:24,280 Hier haben wir Punktwurzel Punktpyramiden Punktprodukt I. D. D. so mit all dem aus dem Weg. 36 00:03:24,280 --> 00:03:33,250 Wenn wir dies jetzt speichern, wird dies hier neu erstellt. Wenn wir jetzt erneut zu admin gehen und auf dieses 37 00:03:33,250 --> 00:03:40,500 Symbol klicken, wird eine Fehlermeldung angezeigt, dass undefined kein Objekt ist, als versucht wurde, die übermittelten 38 00:03:40,510 --> 00:03:41,770 Navigationsdaten-Root-Perms auszuwerten. 39 00:03:42,310 --> 00:03:44,920 Also, was ist da los? 40 00:03:44,950 --> 00:03:53,230 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 41 00:03:53,230 --> 00:03:58,870 ist, wenn wir uns im Anzeigenproduktmodus befinden, was wir sind, wenn wir nur auf diese Schaltfläche oben 42 00:03:58,870 --> 00:04:00,400 rechts geklickt haben Ecke. 43 00:04:00,430 --> 00:04:07,270 Wenn also keine Eltern an den Bildschirm übergeben werden, enthält dieser gesamte Elternschlüssel hier einen undefinierten 44 00:04:07,270 --> 00:04:07,750 Wert. 45 00:04:07,780 --> 00:04:10,590 Es enthält kein leeres Objekt ohne Eltern. 46 00:04:10,740 --> 00:04:12,730 Es selbst ist stattdessen undefiniert. 47 00:04:13,090 --> 00:04:14,730 Das ist also wichtig zu beachten. 48 00:04:14,800 --> 00:04:19,020 Eltern selbst sind undefiniert, wenn es keine Eltern gibt. 49 00:04:19,090 --> 00:04:25,810 Und wenn wir diesen Bildschirm öffnen, um ein Produkt hinzuzufügen, gibt es anfangs keine Eltern. Dieser Submit-Parameter 50 00:04:25,870 --> 00:04:30,410 wird anfangs nicht festgelegt, da dies nur innerhalb der Komponente erfolgt. 51 00:04:30,430 --> 00:04:36,280 Also nachdem der Bildschirm geladen wurde und Produkt I. D. D. definitiv nicht festgelegt, weil wir nicht bearbeiten, 52 00:04:36,310 --> 00:04:37,000 sondern hinzufügen. 53 00:04:37,000 --> 00:04:42,640 Es gibt also kein Produkt I. D. D. wird in diesen Bildschirm eingespeist, wenn wir dorthin navigieren. 54 00:04:42,670 --> 00:04:46,540 Wie stellen wir also sicher, dass wir dann keinen Fehler erhalten? 55 00:04:46,540 --> 00:04:52,240 Nun, wir müssen einfach überprüfen, ob die Eltern selbst definiert sind oder nicht. 56 00:04:52,240 --> 00:04:56,460 Und wir könnten dies hier unten tun, indem wir dies umschreiben. 57 00:04:56,530 --> 00:05:03,670 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 58 00:05:03,670 --> 00:05:07,320 wahr sind, was nur dann der Fall ist, wenn sie definiert sind. 59 00:05:07,510 --> 00:05:15,260 Wenn dies wirklich der Fall ist, möchten wir versuchen, auf die Übermittlung der Eltern zuzugreifen, da wir dann wissen, dass die Eltern 60 00:05:15,260 --> 00:05:19,160 zumindest nicht auf der Suche sind und andernfalls die Übermittlungsfunktion festlegen. 61 00:05:19,160 --> 00:05:23,810 Nehmen wir jetzt an, wir können diesen oder jenen Tag für den Header-Titel wiederholen. 62 00:05:23,870 --> 00:05:26,320 Jetzt haben wir hier bereits einen ternären Ausdruck. 63 00:05:26,360 --> 00:05:32,600 Wir können diese Ausdrücke verschachteln, aber um sie besser lesbar zu machen, erfolgt die Aufteilung über mehrere Zeilen. 64 00:05:32,690 --> 00:05:41,730 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 65 00:05:42,330 --> 00:05:47,250 ist, dann werde ich die Eltern in dieser unhöflichen Elternkonstante speichern. 66 00:05:47,250 --> 00:05:49,550 Ansonsten setze ich dies auf ein leeres Objekt. 67 00:05:49,560 --> 00:05:56,400 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 68 00:05:56,400 --> 00:06:02,250 wir auf Produkt I zugreifen. D. D. ohne Fehler, aber wir werden als 69 00:06:02,250 --> 00:06:06,090 Ergebnis undefiniert, daher befinden wir uns im Produktmodus oder wenn Eltern gefunden werden. 70 00:06:06,090 --> 00:06:12,360 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 71 00:06:12,360 --> 00:06:13,240 Einwände erheben. 72 00:06:13,260 --> 00:06:18,900 In jedem Fall sollte dies also nicht scheitern und wir können etwas Ähnliches in der Komponente tun, die wir natürlich auch 73 00:06:18,930 --> 00:06:20,820 versuchen, als unsere Eltern zu handeln. 74 00:06:21,150 --> 00:06:24,430 Hier sollten wir also auch prüfen, ob dies tatsächlich der Fall ist. 75 00:06:24,570 --> 00:06:31,590 Wenn es definiert ist und wenn es definiert ist, werden die Eltern und ansonsten die Produktideen auf NULL gesetzt. 76 00:06:31,590 --> 00:06:33,670 Auf diese Weise können Sie dies umgehen. 77 00:06:33,690 --> 00:06:41,960 Und wenn wir jetzt die Anwendung sichern und neu laden, können wir zum Administratorbildschirm gehen, auf diese Schaltfläche klicken 78 00:06:42,380 --> 00:06:47,070 und diesen Bildschirm hier erfolgreich laden, um ein Produkt hinzuzufügen. 79 00:06:47,180 --> 00:07:00,130 Jetzt werde ich dies schnell mit einem Buch testen. Geben Sie das Bild ein, das Sie hier sind, und einen Preis hier und 80 00:07:00,160 --> 00:07:02,000 eine Testbuchbeschreibung hier. 81 00:07:02,220 --> 00:07:09,190 Und damit kann ich dies einreichen und das funktioniert im Allgemeinen hier ist unser Buch. 82 00:07:09,230 --> 00:07:15,050 Klicken Sie nun auf Bearbeiten. Wir laden diesen Bearbeitungsbildschirm mit den Buchdaten, damit alles gut aussieht. Wenn ich 83 00:07:17,480 --> 00:07:19,300 Well lösche, funktioniert das nicht. 84 00:07:19,310 --> 00:07:20,760 Ich bekomme hier einen Fehler. 85 00:07:20,780 --> 00:07:25,430 Wir müssen uns darum kümmern, aber zumindest funktioniert es jetzt richtig, wenn es um die Eltern geht. 86 00:07:25,700 --> 00:07:32,840 Ich habe jedoch erwähnt, dass es eine Sache gibt, die wir an unhöflichen Eltern verbessern können, wenn wir hier einen Fall 87 00:07:32,840 --> 00:07:39,110 wie diesen mit der Submit-Funktion haben, bei der wir Eltern missbrauchen, um Daten vom Komponentenkörper zu unseren Navigationsoptionen zu 88 00:07:39,110 --> 00:07:44,930 erhalten, weil wir jetzt mit React Navigation 5 haben ein schöner Weg, um dies zu erreichen.