1 00:00:02,160 --> 00:00:09,210 Quindi voglio andare alla schermata della mappa e in realtà voglio aggiungere un marker lì fin dall'inizio che è anche qualcosa che non 2 00:00:09,210 --> 00:00:11,050 supporta in questo momento e 3 00:00:11,100 --> 00:00:13,910 voglio assicurarmi di non poter scegliere una nuova posizione 4 00:00:13,990 --> 00:00:15,990 lì, quindi un paio di restrizioni. 5 00:00:15,990 --> 00:00:21,960 Quindi, quando facciamo clic sull'anteprima della mappa, suPress, voglio passare alla schermata diversa a destra. 6 00:00:22,020 --> 00:00:28,330 Quindi aggiungerò una nuova costante qui per contenere una funzione che chiamerò show map handler, ovviamente avresti potuto usare 7 00:00:28,590 --> 00:00:33,300 anche una funzione inline e collegherò lo show map handler al mio oggetto di 8 00:00:33,300 --> 00:00:35,340 stampa qui sull'anteprima della mappa . 9 00:00:35,370 --> 00:00:38,970 Questo verrà attivato quando facciamo clic sull'anteprima, quando la tocchiamo 10 00:00:39,130 --> 00:00:47,430 e qui ovviamente voglio navigare. Certo che può essere fatto con oggetti di scena. navigazione. navigare e quindi andare alla 11 00:00:47,430 --> 00:00:49,200 schermata della mappa. 12 00:00:49,200 --> 00:00:51,520 Il problema è che se lo 13 00:00:51,520 --> 00:00:58,830 facciamo in questo modo, non sorprende se lo guardiamo su Android una volta ricaricato, se faccio clic su questo, carico 14 00:00:58,830 --> 00:01:05,790 la schermata della mappa ma non ho il luogo selezionato preselezionato e posso clicca anche qui e salva e 15 00:01:05,790 --> 00:01:10,120 torna alla schermata Aggiungi posto e non è assolutamente così che dovrebbe 16 00:01:11,240 --> 00:01:12,860 funzionare, quindi è sbagliato. 17 00:01:12,890 --> 00:01:19,640 Invece voglio passare alcuni dati alla schermata della mappa dove posso impostare una sola lettura per così 18 00:01:19,880 --> 00:01:23,140 dire, quindi passerò un puntello di sola lettura 19 00:01:23,450 --> 00:01:32,870 e lo imposterò su vero e voglio anche impostare una posizione iniziale e impostare questo ad un oggetto per esempio, dove praticamente passo 20 00:01:32,870 --> 00:01:35,990 in questa posizione, mostro anche in anteprima. 21 00:01:35,990 --> 00:01:46,870 Quindi questo qui, posso tagliarlo da lì e creare una nuova costante di aiuto qui, la posizione selezionata ora è solo questa qui e la 22 00:01:46,870 --> 00:01:54,310 passo come posizione iniziale qui, la posizione selezionata e la passo all'anteprima della mia mappa sul puntello 23 00:01:54,310 --> 00:01:57,440 di posizione e con ciò, stiamo passando 24 00:01:57,510 --> 00:02:01,160 i dati alla schermata della mappa, ora dobbiamo 25 00:02:01,170 --> 00:02:02,430 usarli lì. 26 00:02:02,430 --> 00:02:08,940 Quindi dobbiamo usare l'elica o il parametro di sola lettura per assicurarci di non poter selezionare un nuovo posto, una posizione iniziale 27 00:02:08,940 --> 00:02:11,670 per avere ancora un marker lì dentro dall'inizio. 28 00:02:12,620 --> 00:02:19,990 Quindi ora per usare tutte quelle informazioni qui nella schermata della mappa, posso ottenere i miei dati dai parametri che ricevo, 29 00:02:20,000 --> 00:02:30,380 quindi ottengo la mia posizione iniziale accedendo ai puntelli. navigazione. La posizione iniziale di getParam che potrebbe essere impostata, 30 00:02:30,380 --> 00:02:37,940 ovviamente anche questa potrebbe non essere definita, ma potrebbe anche essere impostata e ottengo la lettura solo con la navigazione degli 31 00:02:37,970 --> 00:02:42,980 oggetti di scena ottengo solo la lettura dei parametri che potrebbe anche essere indefinita. 32 00:02:43,150 --> 00:02:45,860 Ora la posizione iniziale può 33 00:02:45,860 --> 00:02:51,680 essere utilizzata per inizializzare lo stato adesso. Ora, questo non reinizializzerà questo ogni volta che questo viene reso nuovamente, ma invece React 34 00:02:51,680 --> 00:02:56,450 lo gestisce in modo tale da impostare lo stato iniziale e per i successivi cicli di nuovo rendering, questo è semplicemente ignorato, si potrebbe dire. 35 00:02:57,650 --> 00:03:03,530 Quindi ora quando abbiamo una posizione iniziale, il nostro stato verrà inizializzato in quella posizione, il che è fantastico. 36 00:03:03,590 --> 00:03:09,290 Ora tieni presente che ciò che ho passato alla posizione iniziale è di tipo object con lat e lng e 37 00:03:09,290 --> 00:03:13,510 che ovviamente dovrebbe corrispondere a ciò che gestiamo con il nostro stato qui e questo 38 00:03:13,510 --> 00:03:18,950 è il caso perché lì ho anche impostato il mio stato su un oggetto con lat e lng, se 39 00:03:18,950 --> 00:03:25,490 ciò fosse diverso, avresti bisogno di una logica per normalizzare questo. Ora sola lettura è l'altra cosa che sto estraendo e posso usarla 40 00:03:25,490 --> 00:03:31,220 in un gestore di posizione selezionato che è la funzione che si attiva ogni volta che premiamo la mappa e lì, 41 00:03:31,340 --> 00:03:37,940 possiamo verificare se la sola lettura è vera e se non è definita, lo farà sii falso ma se è vero, torno qui, il 42 00:03:37,940 --> 00:03:44,090 che significa che non continuo, non scelgo una nuova posizione. Detto questo, la selezione di una posizione dovrebbe essere disabilitata. 43 00:03:44,090 --> 00:03:47,900 Ora voglio anche sbarazzarmi del pulsante Salva se non abbiamo nulla da salvare, quindi se 44 00:03:47,900 --> 00:03:53,630 siamo in modalità di sola lettura, non possiamo salvare nulla. Quindi headerRight dovrebbe essere impostato solo se non siamo 45 00:03:53,780 --> 00:03:58,790 in modalità di sola lettura, quindi qui estrarrò anche la modalità di sola lettura con l'aiuto 46 00:03:58,790 --> 00:04:02,200 della navigazione ottenere param read solo cosa che posso fare anche 47 00:04:02,600 --> 00:04:09,230 qui ovviamente e quindi ora qui, se siamo in modalità di sola lettura, se questo è vero, la configurazione che ritorno 48 00:04:09,230 --> 00:04:10,550 è un oggetto 49 00:04:10,550 --> 00:04:14,240 vuoto, quindi senza alcun pulsante. Facciamo una prova. 50 00:04:14,300 --> 00:04:22,550 Salviamolo e torniamo indietro e se ora faccio clic su questo elemento qui e faccio clic sulla mappa, si apre ma non ho alcun pulsante di salvataggio 51 00:04:22,550 --> 00:04:28,430 e anche nessun indicatore in modo che non funzioni ma almeno non posso selezionare un nuovo uno, va bene ma 52 00:04:28,430 --> 00:04:32,030 anche il marker non funziona. Ora prima di risolvere questo 53 00:04:32,030 --> 00:04:37,540 problema, andiamo alla schermata del nuovo posto e vediamo se possiamo ancora impostare un indicatore e, in tal 54 00:04:37,550 --> 00:04:40,700 caso, possiamo scegliere un posto lì, in modo che funzioni. 55 00:04:40,700 --> 00:04:48,640 Quindi l'unica cosa che non funziona davvero è caricare questa mappa con un indicatore scelto e in realtà, non è corretto, abbiamo un 56 00:04:48,640 --> 00:04:49,360 indicatore, 57 00:04:49,360 --> 00:04:57,600 non è proprio qui sullo schermo che abbiamo preselezionato a San Francisco. Se andiamo al plex 58 00:04:57,600 --> 00:05:02,750 di Google laggiù, ecco il 59 00:05:02,760 --> 00:05:06,160 marker. Quindi ha salvato questo, ma non si 60 00:05:06,180 --> 00:05:08,880 è concentrato su quello quando lo abbiamo caricato, quindi è un po 61 00:05:09,300 --> 00:05:13,970 'di modifica che dovremmo aggiungere anche sulla schermata della mappa. Lì, dovremmo assicurarci che 62 00:05:14,190 --> 00:05:22,240 questa regione della mappa che impostiamo qui tenga conto anche della posizione iniziale se 63 00:05:22,240 --> 00:05:26,590 ne abbiamo una. Quindi qui la latitudine che abbiamo impostato inizialmente, 64 00:05:26,620 --> 00:05:32,770 bene se abbiamo una posizione iniziale, allora voglio usare la posizione iniziale. lat invece del default, usa solo 65 00:05:32,920 --> 00:05:36,550 il default altrimenti, lo stesso ovviamente per la longitudine. 66 00:05:36,550 --> 00:05:42,010 Se abbiamo una posizione iniziale, voglio usare inizialmente la longitudine invece di quella predefinita. 67 00:05:44,060 --> 00:05:50,390 Ora con ciò se salviamo questo, dovremmo essere in grado di avere una mappa che è automaticamente centrata sul nostro 68 00:05:50,390 --> 00:05:54,050 indicatore se lo apriamo in modalità di sola lettura, quindi qui, 69 00:05:54,470 --> 00:05:55,960 effettivamente funziona e se 70 00:05:56,180 --> 00:06:01,840 ovviamente aggiungo un nuovo posto, quello funziona ancora. Lì lo apriamo sul posto predefinito, 71 00:06:01,850 --> 00:06:08,840 quindi da qualche parte qui a San Francisco. Questo quindi funziona tutto e ora voglio solo testarlo 72 00:06:08,870 --> 00:06:13,190 su alcuni dispositivi reali prima di concludere questo modulo e abbiamo finito con 73 00:06:13,340 --> 00:06:17,240 l'aggiunta di funzionalità di dispositivi nativi alla nostra app React Native.