1 00:00:02,160 --> 00:00:09,210 Así que quiero ir a la pantalla del mapa y en realidad quiero agregar un marcador allí desde el principio, que también es algo que 2 00:00:09,210 --> 00:00:11,050 no admite en este momento 3 00:00:11,100 --> 00:00:13,910 y quiero asegurarme de que no puedo elegir una nueva 4 00:00:13,990 --> 00:00:15,990 ubicación allí, entonces un par de restricciones. 5 00:00:15,990 --> 00:00:21,960 Entonces, cuando hacemos clic en la vista previa del mapa, en Press, quiero navegar a la pantalla diferente a la derecha. 6 00:00:22,020 --> 00:00:28,330 Así que agregaré una nueva constante aquí para mantener una función que nombraré mostrar el controlador del mapa, por supuesto, también podría haber utilizado 7 00:00:28,590 --> 00:00:33,300 una función en línea y conectaré el controlador del mapa del espectáculo a mi accesorio de prensa aquí 8 00:00:33,300 --> 00:00:35,340 en la vista previa del mapa . 9 00:00:35,370 --> 00:00:38,970 Esto se activará cuando hagamos clic en la vista previa, cuando la toquemos 10 00:00:39,130 --> 00:00:47,430 y aquí, por supuesto, quiero navegar. Por supuesto que se puede hacer con accesorios. navegación. navegar y luego ir a 11 00:00:47,430 --> 00:00:49,200 la pantalla del mapa. 12 00:00:49,200 --> 00:00:51,520 El problema es que si lo hacemos 13 00:00:51,520 --> 00:00:58,830 así, como era de esperar, si miramos esto en Android una vez que se vuelve a cargar, si hago clic en esto, cargo 14 00:00:58,830 --> 00:01:05,790 la pantalla del mapa pero no tengo el lugar que seleccioné preseleccionado y puedo también haga clic aquí y guarde y vuelva 15 00:01:05,790 --> 00:01:10,120 a la pantalla de agregar lugar y definitivamente no es así como debería funcionar, 16 00:01:11,240 --> 00:01:12,860 así que está mal. 17 00:01:12,890 --> 00:01:19,640 En cambio, quiero pasar algunos datos a la pantalla del mapa, donde puedo configurarlo para que solo se 18 00:01:19,880 --> 00:01:23,140 lea, digamos, así que pasaré un accesorio de solo 19 00:01:23,450 --> 00:01:32,870 lectura y estableceré esto en verdadero y también quiero establecer una ubicación inicial y establecer esto a un objeto, por ejemplo, donde básicamente paso en esta 20 00:01:32,870 --> 00:01:35,990 ubicación también lo muestro en la vista previa. 21 00:01:35,990 --> 00:01:46,870 Así que aquí, puedo cortarlo desde allí y crear una nueva constante auxiliar aquí, la ubicación seleccionada ahora es solo esto aquí y paso esto como una 22 00:01:46,870 --> 00:01:54,310 ubicación inicial aquí, la ubicación seleccionada y la paso a mi vista previa del mapa en el accesorio 23 00:01:54,310 --> 00:01:57,440 de ubicación y con eso, estamos pasando los 24 00:01:57,510 --> 00:02:01,160 datos a la pantalla del mapa, ahora tenemos que 25 00:02:01,170 --> 00:02:02,430 usarlos allí. 26 00:02:02,430 --> 00:02:08,940 Por lo tanto, necesitamos usar el accesorio o parámetro de solo lectura para asegurarnos de que no podemos seleccionar un nuevo lugar, una ubicación 27 00:02:08,940 --> 00:02:11,670 inicial para tener un marcador allí desde el principio. 28 00:02:12,620 --> 00:02:19,990 Entonces, para usar toda esa información aquí en la pantalla del mapa, puedo obtener mis datos de los parámetros que recibo, así 29 00:02:20,000 --> 00:02:30,380 que obtengo mi ubicación inicial accediendo a los accesorios. navegación. ubicación inicial de getParam que se puede configurar, 30 00:02:30,380 --> 00:02:37,940 por supuesto, esto también puede estar indefinido, pero también se puede configurar y obtengo la lectura solo con la 31 00:02:37,970 --> 00:02:42,980 navegación de utilería get param read solo que también puede estar indefinido. 32 00:02:43,150 --> 00:02:45,860 Ahora la ubicación inicial se 33 00:02:45,860 --> 00:02:51,680 puede utilizar para inicializar el estado ahora. Ahora, esto no reiniciará esto cada vez que se vuelva a renderizar, sino 34 00:02:51,680 --> 00:02:56,450 que React lo gestiona de tal manera que establezca el estado inicial y para los ciclos de renderizado posteriores, esto simplemente se ignora. 35 00:02:57,650 --> 00:03:03,530 Entonces, ahora que tenemos una ubicación inicial, nuestro estado se inicializará en esa ubicación, lo cual es excelente. 36 00:03:03,590 --> 00:03:09,290 Ahora tenga en cuenta que lo que pasé a la ubicación inicial es de tipo objeto con lat y lng 37 00:03:09,290 --> 00:03:13,510 y que, por supuesto, debe coincidir con lo que administramos con nuestro estado aquí 38 00:03:13,510 --> 00:03:18,950 y ese es el caso porque allí también configuré mi estado en un objeto con lat y lng, si 39 00:03:18,950 --> 00:03:25,490 eso fuera diferente, necesitarías algo de lógica para normalizar esto. Ahora, solo lectura es lo otro que estoy extrayendo y puedo usar 40 00:03:25,490 --> 00:03:31,220 esto en un controlador de ubicación selecto, que es la función que se activa cada vez que presionamos el mapa y 41 00:03:31,340 --> 00:03:37,940 allí, podemos verificar si leer solo es verdadero y si no está definido, lo hará ser falso, pero si es cierto, acabo de regresar aquí, 42 00:03:37,940 --> 00:03:44,090 lo que significa que no continúo, no elijo una nueva ubicación. Con eso, elegir una ubicación debería estar deshabilitado. 43 00:03:44,090 --> 00:03:47,900 Ahora también quiero deshacerme del botón Guardar si no tenemos nada que guardar, así que si 44 00:03:47,900 --> 00:03:53,630 estamos en modo de solo lectura, entonces no podemos guardar nada. Por lo tanto, headerRight solo debe establecerse si no estamos 45 00:03:53,780 --> 00:03:58,790 en modo de solo lectura, por lo que aquí también extraeré el modo de solo lectura con la 46 00:03:58,790 --> 00:04:02,200 ayuda de la navegación, obtengo param read solo, lo que puedo hacer 47 00:04:02,600 --> 00:04:09,230 aquí, por supuesto, y por lo tanto ahora aquí, si estamos en modo de solo lectura, si eso es cierto, entonces la configuración que 48 00:04:09,230 --> 00:04:10,550 devuelvo es un objeto 49 00:04:10,550 --> 00:04:14,240 vacío, así que sin ningún botón. Intentemos esto. 50 00:04:14,300 --> 00:04:22,550 Vamos a guardarlo y volver, y si ahora hago clic en este elemento aquí y hago clic en el mapa, se abre pero no tengo un botón para 51 00:04:22,550 --> 00:04:28,430 guardar y tampoco un marcador, así que no funciona, pero al menos no puedo seleccionar un nuevo uno, eso es 52 00:04:28,430 --> 00:04:32,030 bueno pero el marcador tampoco funciona. Ahora, antes de arreglar esto, 53 00:04:32,030 --> 00:04:37,540 vayamos a la pantalla del nuevo lugar y veamos si todavía podemos establecer un marcador y ese es 54 00:04:37,550 --> 00:04:40,700 el caso, podemos elegir un lugar allí, para que funcione. 55 00:04:40,700 --> 00:04:48,640 Entonces, lo único que realmente no funciona es cargar este mapa con un marcador elegido y, de hecho, eso no es correcto, tenemos 56 00:04:48,640 --> 00:04:49,360 un marcador, 57 00:04:49,360 --> 00:04:57,600 simplemente no está aquí en la pantalla que preseleccionamos en San Francisco. Si vamos al plex de 58 00:04:57,600 --> 00:05:02,750 Google allí abajo, aquí está el 59 00:05:02,760 --> 00:05:06,160 marcador. Así que guardó esto, simplemente no se 60 00:05:06,180 --> 00:05:08,880 centró en eso cuando lo cargamos, por lo que es un pequeño 61 00:05:09,300 --> 00:05:13,970 ajuste que también deberíamos agregar en la pantalla del mapa. Allí, debemos asegurarnos de 62 00:05:14,190 --> 00:05:22,240 que esta región del mapa que establezcamos aquí también tenga en cuenta la ubicación inicial 63 00:05:22,240 --> 00:05:26,590 si tenemos una. Entonces, aquí la latitud que establecemos inicialmente, 64 00:05:26,620 --> 00:05:32,770 bueno, si tenemos una ubicación inicial, entonces quiero usar la ubicación inicial. lat en lugar del predeterminado, solo use el 65 00:05:32,920 --> 00:05:36,550 predeterminado de lo contrario, lo mismo, por supuesto, para la longitud. 66 00:05:36,550 --> 00:05:42,010 Si tenemos una ubicación inicial, quiero usar la longitud de esa inicialmente en lugar de la predeterminada. 67 00:05:44,060 --> 00:05:50,390 Ahora con eso, si guardamos esto, deberíamos poder tener un mapa que se centre automáticamente en nuestro marcador si lo abrimos 68 00:05:50,390 --> 00:05:54,050 en el modo de solo lectura, así que aquí, de hecho, eso 69 00:05:54,470 --> 00:05:55,960 funciona y si, por 70 00:05:56,180 --> 00:06:01,840 supuesto, agrego un nuevo lugar, eso También sigue funcionando. Allí lo abrimos en el lugar predeterminado, 71 00:06:01,850 --> 00:06:08,840 así que en algún lugar aquí en San Francisco. Por lo tanto, todo esto funciona y ahora solo 72 00:06:08,870 --> 00:06:13,190 quiero probarlo en algunos dispositivos reales antes de concluir este módulo y hemos 73 00:06:13,340 --> 00:06:17,240 terminado de agregar características nativas del dispositivo a nuestra aplicación React Native.