1 00:00:02,120 --> 00:00:08,120 Obtener datos de nuestra base de datos local no es tan diferente de obtenerlos de un servidor web, en lugar de 2 00:00:08,150 --> 00:00:11,690 llegar a un servidor web, simplemente llegamos a nuestra base de datos local, 3 00:00:11,690 --> 00:00:13,010 pero eso es todo. 4 00:00:13,040 --> 00:00:18,950 Entonces, comencemos escribiendo una función en el archivo db helper que nos permita obtener datos de la base de datos. 5 00:00:19,700 --> 00:00:26,750 Para esto, allí exportaré una nueva constante, buscar lugares, que debería hacer lo que el nombre sugiere, no requiere argumentos y, por supuesto, quiero llegar a 6 00:00:26,750 --> 00:00:31,880 mi base de datos y obtener todos los lugares. Así que copiaré ese código aquí desde 7 00:00:31,880 --> 00:00:35,660 el lugar de inserción con la promesa, etc., pero 8 00:00:35,980 --> 00:00:41,840 la consulta cambiará ahora y también los argumentos, no necesito argumentos porque no inyectaremos ningún 9 00:00:41,840 --> 00:00:43,110 argumento aquí. 10 00:00:43,340 --> 00:00:48,620 En lugar de ejecutar insert into, necesitamos ejecutar una consulta diferente y esa será 11 00:00:48,620 --> 00:00:55,520 una consulta muy simple, quiero seleccionar todos los lugares en mi tabla de lugares que se realiza ejecutando select *, 12 00:00:55,520 --> 00:01:02,170 lo que significa que quiero obtener todas las columnas, todos los campos en esta base de datos de lugares. 13 00:01:02,180 --> 00:01:09,740 Ahora, si conoce un poco de SQL, ahora también podría agregar una cláusula where para decir dónde ID mayor, por ejemplo, etc., pero no lo 14 00:01:09,740 --> 00:01:11,780 haré aquí, quiero obtener todos los 15 00:01:11,780 --> 00:01:16,150 lugares, así que ejecutaré esta consulta y dejamos el resto como está y ahora 16 00:01:16,310 --> 00:01:20,870 solo tenemos que ir a nuestras acciones y asegurarnos de tener una acción para esto. 17 00:01:21,530 --> 00:01:25,670 Entonces, antes que nada, agregaré un nuevo identificador aquí, 18 00:01:25,700 --> 00:01:33,740 un nuevo identificador de acción, estableceré lugares, tal como lo hicimos en el módulo HTTP para configurar los lugares 19 00:01:33,970 --> 00:01:46,020 que obtuvimos de un servidor y con eso, puedo crear un nuevo creador de acción aquí donde digo cargar lugares tal vez, donde este es el nombre y 20 00:01:46,860 --> 00:01:54,980 en este creador de acción, devolveré esta función interna y uso async aguardar allí, por lo que esta función 21 00:01:54,990 --> 00:02:01,590 se ve así, donde al final enviamos una acción objeto donde el tipo debe establecerse 22 00:02:01,590 --> 00:02:05,300 lugares y donde establecemos todos los lugares que 23 00:02:06,020 --> 00:02:14,340 cargamos, pero por supuesto esa es la parte que falta. Obtenemos los lugares ejecutando esta función de búsqueda de lugares que acabo de 24 00:02:14,340 --> 00:02:17,700 definir en el archivo de ayuda, en el archivo db 25 00:02:17,700 --> 00:02:19,570 allí, así que importémoslo desde 26 00:02:20,370 --> 00:02:26,870 allí y luego aquí en el creador de acciones de carga de lugares, podemos ejecutar lugares de búsqueda como este, 27 00:02:26,940 --> 00:02:28,970 esto devuelve una promesa para que 28 00:02:28,970 --> 00:02:32,300 podamos esperar esto y nuevamente obtenemos nuestro resultado db aquí. 29 00:02:32,390 --> 00:02:37,820 Ahora también podemos envolver esto en un bloque try catch para asegurarnos de detectar cualquier error que pueda ocurrir, así 30 00:02:37,820 --> 00:02:40,580 que aquí, si tenemos un error, simplemente lo arrojaré, por 31 00:02:41,270 --> 00:02:43,900 lo que debemos manejarlo en el componente en realidad, 32 00:02:44,210 --> 00:02:48,620 estoy no haciendo eso aquí, pero podría manejarlo de la misma manera que lo hizo en el 33 00:02:48,620 --> 00:02:50,420 módulo HTTP, por ejemplo, y con 34 00:02:50,540 --> 00:02:58,000 eso aquí eventualmente, también en el bloque try, podemos enviar los lugares que buscamos. Para eso es importante que comprendamos cómo se ve el resultado de la 35 00:02:58,010 --> 00:03:00,980 base de datos, así que voy a consolar el 36 00:03:00,980 --> 00:03:07,490 resultado de la base de datos de registro aquí para que podamos verlo y ahora quiero ejecutar lugares de carga en la 37 00:03:07,520 --> 00:03:11,800 pantalla de mi lista de lugares porque ahí es donde necesito todo los lugares, ¿verdad? 38 00:03:11,840 --> 00:03:23,020 Así que aquí importaré acciones star como lugares desde la carpeta de la tienda y allí, el archivo de acciones lugares y necesitamos enviar una acción, 39 00:03:23,410 --> 00:03:30,670 así que importaremos el envío de uso de React Redux y luego aquí crearemos esa función de 40 00:03:30,700 --> 00:03:34,680 envío ejecutando use Despacho y ahora, cuando se carga 41 00:03:34,900 --> 00:03:41,830 este componente, que finalmente podemos descubrir con la ayuda del efecto de uso, quiero despachar esta 42 00:03:41,830 --> 00:03:44,520 acción de carga de datos. 43 00:03:44,520 --> 00:03:49,800 Entonces, aquí podemos ejecutar use effect y en la función que pasamos para 44 00:03:49,840 --> 00:03:56,170 usar effect, quiero enviar acciones de lugares. loadPlaces, 45 00:03:56,180 --> 00:04:05,090 correcto, así. Ahora eso significa que para este efecto, tenemos una dependencia, esa es la acción de despacho 46 00:04:05,090 --> 00:04:07,040 que nunca debería cambiar, por lo 47 00:04:07,100 --> 00:04:11,960 tanto, esto solo debería ejecutarse una vez cuando se crea el componente, que es exactamente el comportamiento que 48 00:04:11,960 --> 00:04:12,610 quiero aquí. 49 00:04:13,910 --> 00:04:19,400 Entonces, la acción de cargar lugares debe enviarse cuando se inicia nuestra aplicación y, de hecho, ya se 50 00:04:19,400 --> 00:04:25,160 inició aquí en iOS y ahora también en Android y, por lo tanto, aquí en el registro, veo algunos resultados 51 00:04:25,160 --> 00:04:29,820 y ese es el registro de Android y ese es el resultado desde la carga 52 00:04:29,820 --> 00:04:32,960 coloca la acción al final. Como puede ver, ese es el resultado 53 00:04:32,960 --> 00:04:38,100 de nuestra acción de base de datos, la identificación de inserción no está definida porque no insertamos algo, en su lugar, simplemente obtuvimos algo. 54 00:04:38,300 --> 00:04:43,820 Tenemos ese campo de filas y ese es otro objeto que tiene un campo _array que contiene una matriz de objetos 55 00:04:43,820 --> 00:04:46,990 y al final, esos son los datos de nuestro lugar, ¿verdad? 56 00:04:47,000 --> 00:04:49,300 Este objeto aquí, es nuestro lugar 57 00:04:49,310 --> 00:04:52,940 de datos, tiene la dirección, la ID, imageUri y así sucesivamente. 58 00:04:52,940 --> 00:04:57,830 Entonces está en el resultado en filas y luego en _array, ahí es 59 00:04:57,830 --> 00:04:59,410 donde viven nuestros datos. 60 00:04:59,450 --> 00:05:06,110 Entonces, eso es lo que necesitamos en el archivo de acciones de lugares aquí cuando enviamos nuestros lugares que 61 00:05:06,110 --> 00:05:08,150 queremos mostrar, que queremos cargar 62 00:05:08,150 --> 00:05:14,600 en Redux, eso debería ser dbResult. filas _formación. 63 00:05:14,680 --> 00:05:21,790 Ahora, por supuesto, eso desencadena las acciones de lugares establecidos, por lo que ahora en el reductor de lugares, 64 00:05:21,790 --> 00:05:22,820 debemos preocuparnos 65 00:05:22,840 --> 00:05:27,140 por esto, así que aquí agrego un caso, establece lugares, asegúrate 66 00:05:27,250 --> 00:05:35,210 de importar el identificador de lugares establecidos aquí y en los lugares establecidos En este caso, puedo devolver una nueva instantánea 67 00:05:35,210 --> 00:05:41,310 de estado donde mis lugares están configurados básicamente en los lugares que obtuve de la base 68 00:05:41,750 --> 00:05:47,510 de datos y lo hago configurándolo en acción. lugares porque en mi archivo de acciones, tengo esta 69 00:05:47,510 --> 00:05:48,300 clave de 70 00:05:48,320 --> 00:05:50,410 lugares en la acción correcta, que 71 00:05:51,380 --> 00:05:59,520 son los datos de lugar cargados y allí solo quiero asignar esta matriz a una nueva matriz para transformar los datos, para transformar cada lugar 72 00:05:59,520 --> 00:06:07,170 en un nuevo lugar que sigue mi modelo de lugar donde, por ejemplo, convierto la ID del lugar que cargamos en una cadena 73 00:06:07,230 --> 00:06:09,680 que es opcional, solo quiero mostrarle cómo 74 00:06:09,690 --> 00:06:13,670 también podría transformar los datos si fuera necesario, puede hacerlo con el 75 00:06:13,710 --> 00:06:17,440 método de mapa que asigna esta matriz a una nueva matriz. 76 00:06:17,670 --> 00:06:18,140 Entonces, 77 00:06:18,150 --> 00:06:24,660 allí hago eso, mantengo el título, mantengo la imagen Uri y simplemente no necesito dirección y latitud, y así en este momento, 78 00:06:24,660 --> 00:06:25,650 también es por 79 00:06:26,190 --> 00:06:29,520 eso que estoy mapeando esto para poder obtener algunos datos, así que 80 00:06:29,520 --> 00:06:35,720 ahora mapeo este conjunto de lugares que cargo en un nuevo conjunto de lugares donde solo me importa la ID, el 81 00:06:35,720 --> 00:06:36,900 título y la imagenUri. 82 00:06:37,970 --> 00:06:43,670 Ahora con eso, si guardamos esto, deberíamos poder ver nuestros lugares cargados aquí en Android, ese lugar 83 00:06:43,880 --> 00:06:49,880 que almacenamos antes y, de hecho, aquí está. Así que ese es nuestro lugar, ese es 84 00:06:49,890 --> 00:06:53,180 el lugar cargado. Con eso, ahora 85 00:06:53,410 --> 00:06:57,850 podemos centrarnos en obtener también la ubicación del usuario, por supuesto.