1 00:00:02,170 --> 00:00:10,150 Jak możemy rozwiązać problem, że musimy tutaj znaleźć konkretny posiłek i nie możemy tak naprawdę użyć 2 00:00:10,600 --> 00:00:13,600 naszego selektora tutaj w opcjach nawigacji? 3 00:00:13,600 --> 00:00:19,960 Teraz są dwie możliwe poprawki - poprawka numer jeden polega na tym, że ponownie używamy starych dobrych 4 00:00:19,990 --> 00:00:22,190 parametrów do komunikacji między komponentem 5 00:00:22,210 --> 00:00:29,470 a opcjami nawigacji, jak pokazałem to w module nawigacji. Tutaj w komponencie ładujemy nasz posiłek, więc oczywiście 6 00:00:29,470 --> 00:00:37,310 tutaj możemy użyć rekwizytów nawigacyjnych ustaw parametry i teraz ustaw parametry na nową tutaj, a teraz możemy użyć ustaw parametrów, aby 7 00:00:37,310 --> 00:00:43,300 przekazać wybrany posiłek lub jego tytuł do nagłówka i cokolwiek przy tym ustawisz, to parametry zostaną 8 00:00:43,300 --> 00:00:48,340 połączone z istniejącymi parametrami, więc to nie zastąpi ich, więc nie przesłonisz posiłku. 9 00:00:48,340 --> 00:00:52,630 Jeśli odzyskujesz tutaj, to wciąż tam będzie, po prostu dodając coś 10 00:00:52,870 --> 00:00:56,840 nowego, zastępujesz parametr tylko wtedy, gdy już istnieje w parametrach. 11 00:00:56,920 --> 00:01:04,030 Więc tutaj możemy dodać klucz tytułu posiłku i ustawić go na wybrany posiłek. tytuł. 12 00:01:04,050 --> 00:01:13,120 Oznacza to, że wysłałem te parametry do mojego nagłówka, gdy ten komponent renderuje się na końcu. 13 00:01:15,800 --> 00:01:20,270 Ponieważ zmieni to rekwizyty, zwykle skończymy w nieskończonej pętli, więc 14 00:01:20,270 --> 00:01:24,710 aby to przerwać, użyjemy tutaj efektu użycia, tak jak 15 00:01:24,800 --> 00:01:29,780 pokazałem to w module nawigacyjnym, i faktycznie zrobimy to wewnątrz efektu użycia. 16 00:01:29,780 --> 00:01:32,690 Więc tutaj możemy użyć efektu użycia i 17 00:01:35,230 --> 00:01:41,430 jako zależność, na razie określę pustą tablicę, a następnie ustawię parametry w funkcji efektu użycia 18 00:01:41,440 --> 00:01:42,320 i 19 00:01:42,520 --> 00:01:47,290 nie będę tutaj pustej tablicy, zamiast tego moja zależność jest wybrana posiłek. 20 00:01:47,290 --> 00:01:55,150 Kiedy to się zmieni, chcę przekazać nowe informacje do nagłówka. Teraz zobaczymy, czy to zadziała, przejdźmy do nagłówka i 21 00:01:55,150 --> 00:01:56,250 tam możemy 22 00:01:56,350 --> 00:01:59,050 teraz pobrać to z parametrów. 23 00:01:59,050 --> 00:02:01,720 Więc tutaj mam tytuł posiłku, mogę 24 00:02:02,080 --> 00:02:09,240 go uzyskać za pomocą NavigationData. nawigacja. tytuł posiłku getParam, to 25 00:02:09,240 --> 00:02:12,660 nazwa, którą wybrałem, ustawiając tutaj parametry. 26 00:02:19,700 --> 00:02:21,590 Teraz po wybraniu tutaj 27 00:02:21,590 --> 00:02:28,190 tytułu posiłku możemy ustawić tytuł nagłówka na ten tytuł posiłku i skomentować ten wiersz, ponieważ i tak 28 00:02:28,200 --> 00:02:30,140 nie będzie działał i spróbujmy. 29 00:02:30,140 --> 00:02:35,660 Zapiszmy to i przejdźmy do strony ze szczegółami, a gdy 30 00:02:35,660 --> 00:02:40,410 to zadziała, zobaczysz problem. Kiedy to się ładuje, początkowo nie ma tytułu, a 31 00:02:40,430 --> 00:02:42,140 pojawia się on dopiero po chwili. 32 00:02:42,140 --> 00:02:47,350 Tak więc dopiero po pełnym załadowaniu widzimy ten tytułowy pop, który nie jest 33 00:02:47,360 --> 00:02:49,530 zbyt piękny, a powodem 34 00:02:49,790 --> 00:02:55,340 tego jest po prostu to, że nasza logika tutaj działa, ale ponieważ efekt użycia działa 35 00:02:55,340 --> 00:03:00,770 po renderowaniu komponentu po raz pierwszy, czekamy dla komponentu, który będzie renderowany po raz 36 00:03:00,770 --> 00:03:06,980 pierwszy, dopóki nie wyślemy params do tytułu, a to oznacza, że kiedy to przejście jest nadal 37 00:03:06,980 --> 00:03:12,400 odtwarzane, a renderowanie nie zostało w pełni zakończone, tak naprawdę nie pokazujemy tego tytułu. 38 00:03:12,680 --> 00:03:15,630 Dlatego może nie być to tutaj 39 00:03:15,650 --> 00:03:20,960 optymalne rozwiązanie i skomentuję to. Lepszym rozwiązaniem tutaj, choć może wydawać się 40 00:03:21,060 --> 00:03:26,310 to tanie, ale jest to również rozwiązanie, z którego często możesz skorzystać, jest po prostu 41 00:03:26,310 --> 00:03:31,800 przesłanie tytułu, którego będziemy potrzebować, z wnętrza komponentu, z którego pochodzisz, aby go załadować gdy jesteś w 42 00:03:31,800 --> 00:03:36,510 komponencie, który przejdzie do tego komponentu i wysyłasz go do tego komponentu przed załadowaniem. 43 00:03:36,510 --> 00:03:42,090 Prześlijmy więc dane z wyprzedzeniem, a my przechodzimy z 44 00:03:42,090 --> 00:03:49,880 ekranu ulubionych lub ekranu kategorii posiłków. Tam, w końcu stukamy element na liście posiłków i w obu 45 00:03:49,890 --> 00:03:54,240 elementach, w obu komponentach, ekranie ulubionych i ekranie kategorii posiłków, używamy listy posiłków, co 46 00:03:54,240 --> 00:04:00,420 jest dobre, ponieważ oznacza to, że możemy przejść do listy posiłków tutaj i tam mamy akcję nawigacyjną, a teraz po 47 00:04:00,420 --> 00:04:06,330 prostu oprócz podania identyfikatora posiłku, dobrze byłoby, gdybyśmy tutaj już przekazali tytuł posiłku, ponieważ mamy go tutaj, prawda? 48 00:04:06,540 --> 00:04:13,350 itemData. pozycja. tytuł, to nasz tytuł posiłku. Dostarczając go tutaj, rozwiązujemy 49 00:04:13,350 --> 00:04:17,950 wszystkie problemy, które mamy na drugim ekranie, więc zdecydowanie takie podejście chcemy zastosować tutaj. 50 00:04:18,090 --> 00:04:24,060 Tak więc, ustawiając ten parametr tutaj w komponencie, w którym uruchamiamy akcję nawigacyjną na stronie szczegółów posiłku, 51 00:04:24,060 --> 00:04:30,270 naprawiliśmy ten problem, ponieważ teraz widzisz tytuł od samego początku i nie mamy żadnego problemu i to 52 00:04:30,270 --> 00:04:36,180 samo oczywiście także na Androida, jeśli spróbujemy. Mój emulator jest trochę 53 00:04:36,180 --> 00:04:43,380 powolny, ale ogólnie można go również zobaczyć. W ten sposób możemy pracować z danymi w 54 00:04:43,380 --> 00:04:50,850 nagłówku, gdy potrzebujemy ich od Redux, a dzięki temu mamy solidny pierwszy stan, jesteśmy w stanie korzystać 55 00:04:50,850 --> 00:04:54,830 z naszych danych Redux. To, czego tak naprawdę nie jesteśmy 56 00:04:54,900 --> 00:04:59,790 w stanie zrobić, to zmienić, więc to kolejny krok, chcemy dodać logikę, abyśmy mogli zmienić dane, abyśmy mogli 57 00:04:59,880 --> 00:05:01,890 oznaczyć ulubione i abyśmy mogli filtrować nasze dane.