1 00:00:02,310 --> 00:00:10,050 Teraz zanim skończymy ten moduł, wróćmy do niektórych list i niektórych przewijalnych treści, ponieważ w tej 2 00:00:10,050 --> 00:00:12,670 aplikacji w ogóle nie mamy 3 00:00:12,690 --> 00:00:18,570 takich treści i naprawdę ważne jest, aby zrozumieć, jak pracować z listami 4 00:00:18,570 --> 00:00:19,920 i jakie 5 00:00:19,920 --> 00:00:25,380 niektóre szczególne dziwactwa dotyczą list. Powiedzmy tutaj, że chcemy zapisać poprzednie przypuszczenia 6 00:00:25,380 --> 00:00:32,060 wykonane przez komputer, chcemy to zapisać tutaj poniżej naszego przycisku plus i minus w tej białej pustej przestrzeni tutaj. 7 00:00:32,310 --> 00:00:38,910 W tym celu oczywiście musimy zarejestrować wszelkie domysły wykonane przez komputer, a następnie wydrukować je na liście. 8 00:00:38,910 --> 00:00:41,880 Na ekranie gry zacznijmy od zarejestrowania tego. 9 00:00:41,970 --> 00:00:44,610 Obecnie liczymy tu tylko rundy, jednak celem 10 00:00:44,610 --> 00:00:49,620 musi być to, że nie tylko liczymy rundy, ale także ocaliliśmy te rundy, więc zapisaliśmy 11 00:00:49,650 --> 00:00:52,770 przypuszczenia, które pojawiły się w każdej rundzie i aby 12 00:00:52,920 --> 00:00:59,520 osiągnąć to tutaj w naszych rundach stan, możemy po prostu zarządzać tablicą zamiast liczby i nazwać to domysły z 13 00:00:59,520 --> 00:01:03,510 przeszłości, aby być naprawdę jasnym na temat tego, co tam jest, 14 00:01:03,690 --> 00:01:06,690 i dlatego nazywa się to set dawnymi domysłami. 15 00:01:06,690 --> 00:01:13,390 Więc teraz celem jest dodanie nowego odgadnięcia tutaj do tej tablicy za każdym razem, gdy wygenerujemy nową liczbę 16 00:01:13,390 --> 00:01:19,530 losową, więc tutaj w następnym module obsługi zgadywania. Tam, gdzie ustalamy rundy, zamiast ustawiać 17 00:01:19,560 --> 00:01:23,660 takie rundy, którymi już nie zarządzamy, musimy ustawić nasze 18 00:01:23,790 --> 00:01:30,420 wcześniejsze domysły i tam musimy wykorzystać nasze poprzednie domysły i faktycznie dodać tutaj nowe domysły. 19 00:01:30,420 --> 00:01:37,540 Teraz możemy użyć tej funkcji tutaj, gdzie otrzymujemy curPastGuesses, która jest trochę dziwna nazwa, ale co oznacza 20 00:01:37,540 --> 00:01:42,790 po prostu, że jest to nasz obecny stan i chcemy zaktualizować to 21 00:01:42,790 --> 00:01:49,810 lub to jest nasz najnowszy stan, aby być precyzyjnym i chcemy to zaktualizować i chcemy zaktualizować, zwracając 22 00:01:50,020 --> 00:01:55,720 nową tablicę, która będzie naszym nowym stanem, i która oczywiście powinna uwzględniać nasze obecne 23 00:01:56,020 --> 00:01:59,680 domysły z przeszłości, a następnie dodawać nowe domysły. 24 00:01:59,690 --> 00:02:04,280 Teraz możemy dodać nowe przypuszczenie na końcu tej listy lub na początku, a ja rzeczywiście 25 00:02:04,280 --> 00:02:09,590 dodam je na początku, aby nasze ostatnie przypuszczenie było zawsze na górze listy, gdy później wyrenderowaliśmy je na 26 00:02:09,590 --> 00:02:10,520 ekranie . 27 00:02:11,210 --> 00:02:17,600 Więc tutaj możemy dodać kolejny numer, który jest naszym nowym domysłem, który tutaj generujemy i 28 00:02:17,600 --> 00:02:25,440 to właśnie musimy dodać tutaj jako przedmiot, prawda? Dzięki temu za każdym razem dodajemy nowe elementy do tej tablicy. 29 00:02:25,470 --> 00:02:28,760 Nie zapominajmy jednak, że zaczynamy od zgadywania, 30 00:02:28,770 --> 00:02:31,290 generujemy tutaj początkowe zgadywanie, chcę zacząć 31 00:02:31,290 --> 00:02:36,670 od zgadywania na liście, dlatego musimy dodać go tutaj, więc go wyodrębnię z 32 00:02:36,720 --> 00:02:44,040 naszego wywołania funkcji stanu użyj tutaj i stwórz nową stałą, początkową zgadywankę, która jest tą losowo generowaną 33 00:02:44,040 --> 00:02:51,910 liczbą, a teraz jest to początkowa zgadywanka, którą tu dodam, aby użyć stanu i jest to również początkowe przypuszczenie, 34 00:02:51,910 --> 00:02:57,850 które dodaję jako pierwszy element do tej tablicy w nasze domysły z przeszłości, użyj 35 00:02:57,850 --> 00:02:59,200 inicjalizacji stanu. 36 00:02:59,200 --> 00:03:06,260 Nie zapominaj teraz, że użycie stanu, ponieważ cały ten kod tutaj jest ponownie uruchamiany, ilekroć ten komponent jest ponownie 37 00:03:06,340 --> 00:03:12,670 renderowany, ale sposób użycia stanu użycia jest taki, że React wykrywa, że stan tego składnika został już 38 00:03:12,670 --> 00:03:13,350 zainicjowany, 39 00:03:13,780 --> 00:03:19,210 więc ustawi tylko określ ten wstępny przypuszczenie po raz pierwszy ten komponent renderuje, a 40 00:03:19,210 --> 00:03:21,400 nie kolejne rendery. Rzeczywiście, początkowe 41 00:03:21,400 --> 00:03:28,120 przypuszczenie zostanie odtworzone, ale tak naprawdę nie zostanie użyte z powodu obsługi stanu odłączonego 42 00:03:28,210 --> 00:03:33,060 stanu, w którym React dowiaduje się, że mamy już stan. 43 00:03:33,070 --> 00:03:38,080 Z tego powodu inicjalizujemy to, inicjalizujemy również nasze przypuszczenie tutaj na tej liście i dodajemy 44 00:03:38,380 --> 00:03:43,090 nowe przypuszczenie do listy na dole tutaj. W związku z tym powinniśmy 45 00:03:43,240 --> 00:03:46,480 mieć pewne domysły z przeszłości, które możemy wypisać na 46 00:03:46,780 --> 00:03:52,300 liście, a teraz mamy dwa sposoby wyprowadzenia tego, za pomocą FlatList lub widoku przewijania, 47 00:03:52,300 --> 00:03:54,660 i zacznę ponownie od widoku przewijania. 48 00:03:54,730 --> 00:04:02,320 Więc tutaj poniżej karty dodam widok przewijania i do tego trzeba zaimportować widok przewijania z React Native, więc 49 00:04:02,320 --> 00:04:02,890 zróbmy 50 00:04:03,010 --> 00:04:04,820 to tutaj, przewiń widok, 51 00:04:04,870 --> 00:04:10,060 zaimportuj go z React Native i wyślij go poniżej listy, aby jest to 52 00:04:10,420 --> 00:04:13,190 przewijalna zawartość, ponieważ tam będę mieć 53 00:04:13,210 --> 00:04:18,620 moją zawartość dynamiczną, wykorzystam moje wcześniejsze przypuszczenia i zamapuję to na liście składników. 54 00:04:18,640 --> 00:04:20,550 Więc tutaj będę musiał 55 00:04:20,560 --> 00:04:26,140 zgadnąć, co powinienem powiedzieć, a to powinno teraz zwrócić komponent wewnątrz tej funkcji mapy, a 56 00:04:26,140 --> 00:04:32,350 takim elementem domniemania może być widok, powiedzmy, z tekstem, w którym po prostu wypisuję przypuszczenie, więc 57 00:04:32,350 --> 00:04:39,880 tutaj renderuję to przypuszczenie, a ponieważ po prostu dodaję moje domysły tutaj w ten sposób bezpośrednio do tablicy, przypuszczam, że 58 00:04:39,880 --> 00:04:45,670 tam jest tylko numer zgadywania i mogę po prostu wyprowadzić go w ten sposób tutaj. 59 00:04:47,150 --> 00:04:53,600 Teraz dowiedziałeś się, że w przypadku przedmiotów, które mapujemy w ten sposób, musisz również dodać klucz 60 00:04:53,600 --> 00:04:57,340 i moglibyśmy użyć naszej domysły tutaj jako klucza, 61 00:04:57,350 --> 00:05:04,010 gdybyśmy mieli gwarancję unikalności, ale przy naszej obecnej logice tak naprawdę nie jest ponieważ w naszej obecnej 62 00:05:04,010 --> 00:05:11,300 logice generowanie losowe pomiędzy faktycznie generuje nową liczbę losową, w której górna granica, ta wysoka wartość tutaj jest wykluczona, 63 00:05:11,300 --> 00:05:17,190 ale dolna granica jest uwzględniona, więc możemy uzyskać tę dolną granicę jako nową wartość losową. 64 00:05:17,300 --> 00:05:23,660 Wadą tego jest to, że tutaj, gdzie ustalamy naszą nową dolną granicę, ustawiamy to na bieżące 65 00:05:23,660 --> 00:05:30,020 przypuszczenie, co oznacza, że można to powtórzyć w przyszłej losowej liczbie i faktycznie widzieliśmy to również 66 00:05:30,020 --> 00:05:31,120 w tym 67 00:05:31,130 --> 00:05:37,010 module, czasami tam , komputer zgaduje liczbę, która została już odgadnięta kilka rund wcześniej. 68 00:05:37,070 --> 00:05:42,900 Nie jest to ogromny problem, ale teraz dzieje się tak, ponieważ teraz musimy zagwarantować, że nasze 69 00:05:43,190 --> 00:05:49,460 domysły są wyjątkowe, a poprawka jest prosta, możemy po prostu dodać tutaj, gdy ustalimy naszą nową dolną 70 00:05:49,460 --> 00:05:56,930 granicę, ponieważ dodając jedną tutaj, zapewniamy że nowa dolna granica, która jest uwzględniona w generowaniu liczb losowych, jest w rzeczywistości o 71 00:05:57,410 --> 00:06:01,270 jeden wyższa niż obecne przypuszczenie, które było fałszywe, w przeciwnym 72 00:06:01,280 --> 00:06:02,910 razie nie dotarlibyśmy tutaj. 73 00:06:02,930 --> 00:06:09,020 Teraz ustalamy nową dolną granicę, która może zostać wygenerowana w przyszłości, ale której nie 74 00:06:09,020 --> 00:06:09,950 wygenerowaliśmy wcześniej. 75 00:06:09,950 --> 00:06:13,100 Jest to więc mała poprawka w logice, która nie 76 00:06:13,100 --> 00:06:18,560 szkodzi w żaden sposób, a jest to szczególnie ważne, jeśli planujesz użyć zgadywania jako unikalnego klucza tutaj. 77 00:06:18,640 --> 00:06:20,110 Dzięki temu 78 00:06:20,110 --> 00:06:21,670 zobaczmy, czy to działa. 79 00:06:21,730 --> 00:06:26,190 Zapiszmy to i spróbujmy tutaj na iOS, uruchom 80 00:06:26,190 --> 00:06:27,610 grę i 81 00:06:27,750 --> 00:06:31,830 widzimy nasze początkowe przypuszczenia, 57, nie jest ładnie 82 00:06:31,830 --> 00:06:37,890 sformatowane, ale widzimy to tutaj. Teraz 57 jest za wysoka, jeśli powiem 83 00:06:37,920 --> 00:06:43,670 niżej, widzimy nowe domysły na górze listy i skłamałem i wydaje się, że to działa. 84 00:06:43,740 --> 00:06:49,470 Teraz oczywiście pojawia się błąd, gdy gra się kończy, ponieważ tam staramy się obchodzić nasze rundy i nie 85 00:06:49,980 --> 00:06:53,730 zarządzamy tym już jako stanem. Musimy to 86 00:06:53,910 --> 00:06:56,590 naprawić, ale wyświetlanie listy działa. 87 00:06:56,670 --> 00:06:59,140 Teraz naprawmy błąd, który otrzymujemy, 88 00:06:59,160 --> 00:07:08,580 który po prostu pochodzi z useEffect, w którym przekazuję rundy do onGameOver. Tam w końcu muszę przekazać liczbę rund, 89 00:07:08,580 --> 00:07:13,120 które zajęły komputerowi odgadnięcie naszej liczby. 90 00:07:13,140 --> 00:07:17,030 Wcześniej mieliśmy tutaj zmienną rundy, stan rundy, teraz 91 00:07:17,040 --> 00:07:23,010 mamy tylko zgadnięcia, które są tablicą, więc nie możemy przekazywać takich zgadnięć, ponieważ w 92 00:07:23,040 --> 00:07:24,660 końcu gra wymaga liczby, 93 00:07:24,660 --> 00:07:30,440 ale oczywiście możemy przekazać długość domysłów, która jest tylko liczbą rund, jakie zajęło 94 00:07:30,450 --> 00:07:31,520 komputerowi. 95 00:07:31,530 --> 00:07:37,920 Dzięki temu, jeśli to zrobimy, powinniśmy być w stanie pomyślnie ukończyć grę. 96 00:07:37,980 --> 00:07:43,440 Jeśli spróbujemy to zrobić tutaj szybko i rozwiązać grę, tak, 97 00:07:43,440 --> 00:07:44,900 to działa. 98 00:07:45,030 --> 00:07:47,340 Więc teraz mamy to działanie, teraz 99 00:07:47,340 --> 00:07:51,750 odwróćmy głowę w stronę tego widoku przewijania i elementów listy tam ponownie i 100 00:07:51,750 --> 00:07:54,210 upewnijmy się, że mamy tam odpowiednią stylizację.