1 00:00:02,110 --> 00:00:04,450 Jak możemy się upewnić, że możemy wybrać miejsce? 2 00:00:04,870 --> 00:00:10,900 W widoku mapy na ekranie mapy możesz dodać moduł obsługi onPress, który uruchamia się za każdym razem, gdy 3 00:00:10,900 --> 00:00:11,580 stukniesz 4 00:00:11,680 --> 00:00:16,690 gdzieś na mapie, a tym samym nie mam na myśli stuknięć podczas przewijania, ale gdy 5 00:00:16,690 --> 00:00:23,130 stukniesz tam bez przewijania, więc jeśli naprawdę chcę coś wybrać. To wtedy uruchomi się i dlatego może być 6 00:00:23,170 --> 00:00:27,010 powiązane z funkcją, którą tu zdefiniuję, która powinna przechowywać wybrane miejsce. 7 00:00:27,010 --> 00:00:33,940 Więc tutaj będę miał moją funkcję obsługi położenia, która pobiera obiekt zdarzenia i to właśnie 8 00:00:33,940 --> 00:00:36,260 tutaj wiążę z onPress. 9 00:00:36,260 --> 00:00:42,440 Teraz możemy przyjrzeć się temu wydarzeniu, aby dowiedzieć się, co tam jest, jakie dane otrzymujemy. 10 00:00:42,440 --> 00:00:44,300 Więc pozwól mi to 11 00:00:44,330 --> 00:00:52,550 zapisać i przetestować, przejdźmy do mapy, a następnie, gdy zostanie załadowana, po prostu dotknij gdzieś na mapie, jak tutaj. 12 00:00:52,550 --> 00:00:58,450 Jeśli teraz wrócimy, otrzymam dane wyjściowe, a tam zobaczysz, że jest to dość duży obiekt, w 13 00:00:58,700 --> 00:01:02,280 końcu otrzymujemy garść danych, których tak naprawdę nie potrzebujemy, 14 00:01:02,510 --> 00:01:04,700 to tutaj jest syntetyczne wydarzenie. 15 00:01:04,850 --> 00:01:10,880 To, co mamy, jest interesujące, to natywna właściwość zdarzenia, która jest kolejnym obiektem, który ma właściwość współrzędnych, 16 00:01:10,880 --> 00:01:15,170 która jest jeszcze innym obiektem, który ma szerokość i długość geograficzną. 17 00:01:15,170 --> 00:01:17,090 W końcu interesujemy się tym, właśnie 18 00:01:17,090 --> 00:01:18,520 to, chcemy się dowiedzieć, to 19 00:01:18,530 --> 00:01:19,700 jest para 20 00:01:19,700 --> 00:01:21,000 współrzędnych, którą chcemy uzyskać. 21 00:01:21,020 --> 00:01:24,640 Więc to jest miejsce, współrzędne, które wybrał użytkownik, to jest 22 00:01:24,650 --> 00:01:30,850 to, co chcę tutaj przechowywać i dobrze byłoby na początku dodać znacznik w tym miejscu, aby zaznaczyć 23 00:01:30,860 --> 00:01:34,430 to miejsce na mapie. W tym 24 00:01:34,420 --> 00:01:42,260 celu możemy oczywiście użyć stanu, aby zapisać to wybrane miejsce i komponent, a następnie 25 00:01:43,100 --> 00:01:48,170 zainicjować to tutaj i mieć naszą wybraną lokalizację i 26 00:01:50,500 --> 00:01:58,870 ustawić wybraną lokalizację za pomocą stanu użycia. Początkowo jest pusty, początkowo nie mamy wybranej lokalizacji, 27 00:01:58,870 --> 00:02:01,200 a następnie możemy 28 00:02:01,270 --> 00:02:08,170 utworzyć znacznik tutaj, jeśli go mamy. W tym celu możemy zaimportować komponent znacznika z map natywnych, 29 00:02:08,170 --> 00:02:14,590 dodając tutaj niektóre nazwane importy oprócz tego domyślnego importu, a także możemy zaimportować znacznik z map React Native, jest 30 00:02:14,590 --> 00:02:20,530 to tak proste i możemy wyrenderować ten znacznik, dodając go między otwieranie i zamykanie tagów widoku mapy, 31 00:02:20,530 --> 00:02:21,470 których teraz 32 00:02:21,640 --> 00:02:23,780 potrzebujemy, abyśmy mogli tutaj dodać znacznik. 33 00:02:23,870 --> 00:02:27,090 Teraz ten znacznik wymaga pewnej konfiguracji, w przeciwnym razie React 34 00:02:27,170 --> 00:02:32,840 Native mapy nie wiedzą, gdzie go pokazać. Możemy na przykład dodać 35 00:02:33,230 --> 00:02:40,560 tytuł, wybraną lokalizację, ale co ważniejsze, możesz tutaj dodać współrzędną rekwizyt, który 36 00:02:40,590 --> 00:02:53,260 spodziewa się uzyskać obiekt o szerokości i długości geograficznej. Więc tutaj dodam nową zmienną, powiedzmy współrzędne znacznika, a jeśli mam wybraną lokalizację i to jest 37 00:02:53,320 --> 00:03:00,190 stan, którym tam zarządzam, jeśli ją mam, to chcę ustawić współrzędne znacznika równe obiektowi, w którym musisz 38 00:03:00,190 --> 00:03:05,050 mieć szerokość geograficzną o nazwie szerokość geograficzna, więc nie jest to szerokość 39 00:03:05,080 --> 00:03:06,070 geograficzna, musi 40 00:03:06,070 --> 00:03:10,890 to być szerokość geograficzna, ponieważ składnik znacznika będzie szukał właściwości o 41 00:03:12,100 --> 00:03:15,390 nazwie szerokość geograficzna i może to być wybrana 42 00:03:16,710 --> 00:03:17,860 lokalizacja. lat 43 00:03:17,970 --> 00:03:22,970 powiedzmy, że to od nas zależy, jak to wtedy uratujemy, nie robimy tego teraz, ale później 44 00:03:22,970 --> 00:03:28,100 zapiszę tak, że mamy tam łopatę i długość geograficzną, którą należy nazwać w ten sposób, która może 45 00:03:28,100 --> 00:03:31,150 utrzymać wartość przechowywane w selectedLocation. lng. 46 00:03:31,370 --> 00:03:36,560 Teraz współrzędne znacznika są warunkowo ustawione i tutaj możemy teraz sprawdzić, czy warunki znacznika istnieją, a 47 00:03:36,890 --> 00:03:44,100 jeśli tak, używamy tego skrótu, aby również wyświetlić znacznik tutaj. Teraz współrzędne znaczników są również tym, w czym możemy 48 00:03:44,100 --> 00:03:45,900 się tutaj karmić i 49 00:03:45,900 --> 00:03:49,890 pamiętaj, że to współrzędne, a nie współrzędne, to tylko współrzędne. 50 00:03:49,890 --> 00:03:56,260 W tym momencie są to nasze współrzędne znaczników, a teraz musimy tylko upewnić się, że ostatecznie ustaliliśmy wybraną lokalizację i oczywiście 51 00:03:56,250 --> 00:03:57,420 chcę to zrobić 52 00:03:57,620 --> 00:04:01,740 tutaj w moim wybranym module obsługi lokalizacji. Tam chcę zadzwonić ustaw 53 00:04:01,820 --> 00:04:08,330 wybraną lokalizację, aby ustawić mój stan, przekazać tam obiekt i ustawić mój stan na obiekt 54 00:04:08,330 --> 00:04:16,450 za pomocą klucza lat, ponieważ próbuję wyodrębnić tam lat zdarzenia. nativeEvent, jak widzieliście, tam była ta właściwość współrzędnych, 55 00:04:16,490 --> 00:04:22,580 która ma właściwość szerokości geograficznej, a następnie lng, którą również wyodrębniam, powinna być 56 00:04:22,580 --> 00:04:31,520 ustawiona na zdarzenie. nativeEvent. współrzędne długość geograficzna. Dzięki temu kodowi powinniśmy być 57 00:04:31,520 --> 00:04:35,480 w stanie wyświetlić znacznik na mapie. Spróbujmy więc, przejdźmy do iOS, 58 00:04:35,480 --> 00:04:36,900 wczytaj mapę i wybierz 59 00:04:36,950 --> 00:04:38,240 miejsce, a 60 00:04:41,190 --> 00:04:47,640 my zobaczymy znacznik w miejscu, w którym klikam. Mam nadzieję, że to samo 61 00:04:47,640 --> 00:04:53,480 na Androidzie, spróbujmy tam, otwórz mapę i rzeczywiście tam, gdzie 62 00:04:53,520 --> 00:04:54,720 stukam, 63 00:04:58,440 --> 00:05:01,380 również tam umieszczam swój znacznik. 64 00:05:01,410 --> 00:05:05,290 Tak więc możemy pracować ze znacznikami i wybierać miejsca, to 65 00:05:05,340 --> 00:05:06,820 wszystko jest miłe. 66 00:05:06,810 --> 00:05:12,090 Teraz ostatecznie chcę mieć możliwość kliknięcia przycisku Zapisz, który jeszcze tam nie 67 00:05:12,090 --> 00:05:19,750 istnieje, który następnie zamyka tę mapę i ostatecznie przesyła wybraną lokalizację z powrotem do mojego nowego ekranu miejsca, 68 00:05:19,750 --> 00:05:24,940 tak, który mam tutaj także. Chcę wrócić do tego ekranu i oczywiście zapisać wybraną 69 00:05:24,950 --> 00:05:25,500 lokalizację.