1 00:00:02,120 --> 00:00:08,120 Buscar dados do nosso banco de dados local não é tão diferente de buscá-los em um servidor Web, em vez 2 00:00:08,150 --> 00:00:11,690 de acessar um servidor Web, apenas acessamos nosso banco de dados 3 00:00:11,690 --> 00:00:13,010 local, mas é isso. 4 00:00:13,040 --> 00:00:18,950 Então, vamos começar escrevendo uma função no arquivo auxiliar do db que nos permite buscar dados no banco de dados. 5 00:00:19,700 --> 00:00:26,750 Para isso, lá vou exportar uma nova constante, buscar locais, que deve fazer o que o nome sugere, não requer argumentos e, é claro, quero acessar 6 00:00:26,750 --> 00:00:31,880 meu banco de dados e obter todos os locais. Então, copio esse código aqui do insert 7 00:00:31,880 --> 00:00:35,660 place com a promessa e assim por diante, mas 8 00:00:35,980 --> 00:00:41,840 a consulta muda agora e também os argumentos. Não preciso de argumentos, porque não injetamos 9 00:00:41,840 --> 00:00:43,110 argumentos aqui. 10 00:00:43,340 --> 00:00:48,620 Em vez de executar a inserção em, precisamos executar uma consulta diferente e essa 11 00:00:48,620 --> 00:00:55,520 será uma consulta muito simples. Quero selecionar todos os locais da minha tabela de locais, executando a execução de select 12 00:00:55,520 --> 00:01:02,170 *, o que significa que quero obter todas as colunas, todos os campos neste banco de dados de lugares. 13 00:01:02,180 --> 00:01:09,740 Agora, se você conhece um pouco de SQL, agora também pode adicionar uma cláusula where para dizer qual ID 14 00:01:09,740 --> 00:01:11,780 é maior, por exemplo, 15 00:01:11,780 --> 00:01:16,150 etc. e deixe o resto como está e agora só precisamos 16 00:01:16,310 --> 00:01:20,870 ir para nossas ações e garantir que tenhamos uma ação para isso. 17 00:01:21,530 --> 00:01:25,670 Então, antes de tudo, adicionarei um novo identificador aqui, 18 00:01:25,700 --> 00:01:33,740 um novo identificador de ação, definir locais, assim como fizemos no módulo HTTP para definir os locais que buscamos 19 00:01:33,970 --> 00:01:46,020 em um servidor e, com isso, posso criar um novo criador de ações aqui onde eu digo carregar lugares, talvez, onde esse é o nome, e nesse criador de 20 00:01:46,860 --> 00:01:54,980 ação, retornarei essa função interna e utilizo o async wait lá, então essa função fica assim, onde no final é 21 00:01:54,990 --> 00:02:01,590 claro que despachamos uma ação objeto em que o tipo deve ser definido como local e 22 00:02:01,590 --> 00:02:05,300 onde definimos todos os locais que carregamos, mas 23 00:02:06,020 --> 00:02:14,340 é claro que essa é a parte que está faltando. Nós obtemos os locais executando esta função de busca de locais que 24 00:02:14,340 --> 00:02:17,700 acabei de definir no arquivo helpers, no arquivo db 25 00:02:17,700 --> 00:02:19,570 lá, então vamos importá-los 26 00:02:20,370 --> 00:02:26,870 de lá e depois aqui no criador da ação load places, podemos executar locais de busca como este, este 27 00:02:26,940 --> 00:02:28,970 retorna uma promessa para que possamos 28 00:02:28,970 --> 00:02:32,300 aguardar isso e novamente obtemos nosso resultado db aqui. 29 00:02:32,390 --> 00:02:37,820 Agora também podemos agrupar isso em um bloco try catch para garantir que capturamos os erros que possam ocorrer; portanto, 30 00:02:37,820 --> 00:02:40,580 se houver um erro, eu o lançarei, então precisamos lidar 31 00:02:41,270 --> 00:02:43,900 com isso no componente, na verdade, eu sou não 32 00:02:44,210 --> 00:02:48,620 fazendo isso aqui, mas você pode lidar com isso da mesma maneira que o manipulou no 33 00:02:48,620 --> 00:02:50,420 módulo HTTP, por exemplo, e com 34 00:02:50,540 --> 00:02:58,000 isso aqui eventualmente, também no bloco try, podemos despachar os locais que buscamos. Para isso, é importante que entendamos como o resultado do banco de 35 00:02:58,010 --> 00:03:00,980 dados se parece; portanto, console o resultado do 36 00:03:00,980 --> 00:03:07,490 banco de dados de log aqui para que possamos analisá-lo e agora quero executar locais de carregamento na tela da 37 00:03:07,520 --> 00:03:11,800 lista de locais, porque é aí que preciso de tudo. os lugares, certo? 38 00:03:11,840 --> 00:03:23,020 Então, aqui, importarei ações star como locais da pasta store e, lá, o arquivo de ações locais e precisamos despachar uma ação; portanto, importarei 39 00:03:23,410 --> 00:03:30,670 o uso dispatch do React Redux e, em seguida, criaremos essa função de envio executando 40 00:03:30,700 --> 00:03:34,680 use despachar e agora, quando esse componente carregar, 41 00:03:34,900 --> 00:03:41,830 o que podemos descobrir com a ajuda do efeito de uso, desejo despachar essa 42 00:03:41,830 --> 00:03:44,520 ação de carregamento de dados. 43 00:03:44,520 --> 00:03:49,800 Então, aqui podemos executar use effect e, na função que passamos para use 44 00:03:49,840 --> 00:03:56,170 effect, quero despachar as ações dos locais. loadPlaces, 45 00:03:56,180 --> 00:04:05,090 certo, assim. Agora, isso significa que, para esse efeito, temos uma dependência, que é a ação de despacho 46 00:04:05,090 --> 00:04:07,040 que nunca deve mudar, portanto, isso 47 00:04:07,100 --> 00:04:11,960 deve ser executado apenas uma vez quando o componente for criado, que é exatamente o comportamento que eu 48 00:04:11,960 --> 00:04:12,610 quero aqui. 49 00:04:13,910 --> 00:04:19,400 Então agora a ação de locais de carregamento deve ser despachada quando o aplicativo é iniciado e, de 50 00:04:19,400 --> 00:04:25,160 fato, já foi iniciado aqui no iOS e agora também no Android e, portanto, aqui no log, vejo alguma 51 00:04:25,160 --> 00:04:29,820 saída e esse é o log do Android e esse é o resultado da carga 52 00:04:29,820 --> 00:04:32,960 coloca a ação no final. Como você vê, esse é o 53 00:04:32,960 --> 00:04:38,100 resultado de nossa ação no banco de dados, o ID de inserção é indefinido porque não inserimos algo, apenas obtemos algo. 54 00:04:38,300 --> 00:04:43,820 Temos esse campo de linhas e esse é outro objeto que possui um campo _array que contém uma matriz de 55 00:04:43,820 --> 00:04:46,990 objetos e, no final, esses são nossos dados de local, certo? 56 00:04:47,000 --> 00:04:49,300 Esse objeto aqui, são nossos dados 57 00:04:49,310 --> 00:04:52,940 de local, tem o endereço, o ID, imageUri e assim por diante. 58 00:04:52,940 --> 00:04:57,830 Portanto, é o resultado em linhas e, em seguida, em matriz, é onde 59 00:04:57,830 --> 00:04:59,410 nossos dados residem. 60 00:04:59,450 --> 00:05:06,110 Então é isso que precisamos no arquivo de ações de locais aqui quando despachamos nossos locais que queremos 61 00:05:06,110 --> 00:05:08,150 exibir, que queremos carregar 62 00:05:08,150 --> 00:05:14,600 no Redux, que deve ser dbResult. linhas. _ matriz. 63 00:05:14,680 --> 00:05:21,790 Agora, é claro, isso então aciona as ações dos locais definidos, então agora no redutor de locais, precisamos 64 00:05:21,790 --> 00:05:22,820 nos preocupar 65 00:05:22,840 --> 00:05:27,140 com isso, então aqui eu adiciono um caso, locais definidos, certifique-se 66 00:05:27,250 --> 00:05:35,210 de importar o identificador de locais definidos aqui e nos locais definidos Nesse caso, posso retornar um novo instantâneo de estado 67 00:05:35,210 --> 00:05:41,310 em que meus locais estão basicamente definidos para os locais que voltei do banco de 68 00:05:41,750 --> 00:05:47,510 dados e faço isso configurando-o para ação. lugares porque no meu arquivo de ações, eu 69 00:05:47,510 --> 00:05:48,300 tenho 70 00:05:48,320 --> 00:05:50,410 essa chave de lugares na ação, 71 00:05:51,380 --> 00:05:59,520 que são os dados carregados do local e só quero mapear essa matriz em uma nova matriz para transformar os dados, transformar cada 72 00:05:59,520 --> 00:06:07,170 local em um novo local que segue meu modelo de local onde, por exemplo, converto o ID do local que carregamos em 73 00:06:07,230 --> 00:06:09,680 uma sequência opcional, só quero mostrar como 74 00:06:09,690 --> 00:06:13,670 você também pode transformar os dados, se necessário, fazer isso com 75 00:06:13,710 --> 00:06:17,440 o método map que mapeia essa matriz em uma nova matriz. 76 00:06:17,670 --> 00:06:18,140 Então, 77 00:06:18,150 --> 00:06:24,660 lá faço isso, mas continuo com o título, continuo com o imageUri e não preciso de endereço e latitude, e assim por diante 78 00:06:24,660 --> 00:06:25,650 agora, também é 79 00:06:26,190 --> 00:06:29,520 por isso que estou mapeando isso para que possa desenhar alguns dados. 80 00:06:29,520 --> 00:06:35,720 agora mapeio esse conjunto de locais que carrego em um novo conjunto de locais onde me importo apenas com o ID, o 81 00:06:35,720 --> 00:06:36,900 título e o imageUri. 82 00:06:37,970 --> 00:06:43,670 Agora, com isso, se salvarmos isso, poderemos realmente ver nossos lugares sendo carregados aqui no Android, aquele 83 00:06:43,880 --> 00:06:49,880 que armazenamos antes e, de fato, aqui está. Então esse é o nosso lugar, esse 84 00:06:49,890 --> 00:06:53,180 lugar é carregado. Com isso, agora podemos 85 00:06:53,410 --> 00:06:57,850 nos concentrar também em obter a localização do usuário, é claro.