1 00:00:02,120 --> 00:00:08,120 Il recupero dei dati dal nostro database locale non è così diverso dal recupero da un server Web, invece di raggiungere 2 00:00:08,150 --> 00:00:11,690 un server Web, ci limitiamo a raggiungere il nostro database locale, ma 3 00:00:11,690 --> 00:00:13,010 il gioco è fatto. 4 00:00:13,040 --> 00:00:18,950 Quindi iniziamo scrivendo una funzione nel file helper db che ci consente di recuperare i dati dal database. 5 00:00:19,700 --> 00:00:26,750 Per questo, lì dentro esporterò una nuova costante, recuperando i luoghi, che dovrebbe fare ciò che suggerisce il nome, non accetta argomenti e lì, naturalmente, voglio 6 00:00:26,750 --> 00:00:31,880 raggiungere il mio database e ottenere tutti i posti. Quindi copierò questo codice da insert place 7 00:00:31,880 --> 00:00:35,660 con la promessa e così via, ma la query 8 00:00:35,980 --> 00:00:41,840 cambierà ora e anche gli argomenti, non ho bisogno di argomenti perché non inietteremo alcun 9 00:00:41,840 --> 00:00:43,110 argomento qui. 10 00:00:43,340 --> 00:00:48,620 Invece di eseguire insert in, dobbiamo eseguire una query diversa e questa sarà 11 00:00:48,620 --> 00:00:55,520 una query molto semplice, voglio selezionare tutti i posti nella mia tabella dei posti che viene eseguita eseguendo select 12 00:00:55,520 --> 00:01:02,170 * il che significa che voglio ottenere tutte le colonne, tutti i campi in questo database da luoghi. 13 00:01:02,180 --> 00:01:09,740 Ora se conosci un po 'di SQL, ora puoi anche aggiungere una clausola where per dire dove ID maggiore uno per esempio e così via, 14 00:01:09,740 --> 00:01:11,780 ma non lo farò qui, voglio 15 00:01:11,780 --> 00:01:16,150 ottenere tutti i posti quindi eseguirò questa query e lasciare il resto così com'è 16 00:01:16,310 --> 00:01:20,870 e ora dobbiamo solo andare alle nostre azioni e assicurarci di avere un'azione per questo. 17 00:01:21,530 --> 00:01:25,670 Quindi, prima di tutto, aggiungerò qui un nuovo identificatore, 18 00:01:25,700 --> 00:01:33,740 un nuovo identificatore di azione, impostiamo i luoghi, proprio come abbiamo fatto nel modulo HTTP per impostare i luoghi 19 00:01:33,970 --> 00:01:46,020 che abbiamo recuperato da un server e, con ciò, posso creare un nuovo creatore di azioni qui dove dico carica luoghi forse, dove questo è il nome e in 20 00:01:46,860 --> 00:01:54,980 questo creatore di azioni, restituirò questa funzione interiore e uso async wait in là, quindi questa funzione è simile 21 00:01:54,990 --> 00:02:01,590 a questa, dove alla fine ovviamente inviamo un'azione oggetto in cui il tipo deve essere 22 00:02:01,590 --> 00:02:05,300 impostato in luoghi e in cui impostare tutti 23 00:02:06,020 --> 00:02:14,340 i luoghi caricati, ma ovviamente questa è la parte mancante. Otteniamo i luoghi eseguendo questa funzione di recupero dei luoghi che ho appena 24 00:02:14,340 --> 00:02:17,700 definito nel file degli helper, nel file db lì, quindi 25 00:02:17,700 --> 00:02:19,570 importiamolo da lì e 26 00:02:20,370 --> 00:02:26,870 quindi qui nel creatore dell'azione dei luoghi di caricamento, possiamo eseguire i luoghi di recupero come questo, questo restituisce una 27 00:02:26,940 --> 00:02:28,970 promessa in modo che possiamo aspettare 28 00:02:28,970 --> 00:02:32,300 questo e di nuovo otteniamo il nostro risultato db qui. 29 00:02:32,390 --> 00:02:37,820 Ora possiamo anche racchiuderlo in un blocco try catch per assicurarci di rilevare eventuali errori che potrebbero verificarsi, 30 00:02:37,820 --> 00:02:40,580 quindi qui se abbiamo un errore, lo lancerò, quindi 31 00:02:41,270 --> 00:02:43,900 dobbiamo gestirlo nel componente in realtà, sono non farlo 32 00:02:44,210 --> 00:02:48,620 qui ma potresti gestirlo nello stesso modo in cui lo hai gestito nel modulo HTTP 33 00:02:48,620 --> 00:02:50,420 per esempio e con quello 34 00:02:50,540 --> 00:02:58,000 qui eventualmente, anche nel blocco try, possiamo spedire i luoghi che prendiamo. Per questo è importante per noi capire come appare il risultato 35 00:02:58,010 --> 00:03:00,980 del database, quindi consento il log del risultato 36 00:03:00,980 --> 00:03:07,490 del DB qui in modo che possiamo esaminarlo e ora voglio eseguire i posti di carico nella schermata dell'elenco 37 00:03:07,520 --> 00:03:11,800 dei luoghi perché è lì che ho bisogno di tutto i posti, giusto? 38 00:03:11,840 --> 00:03:23,020 Quindi, qui, importerò le stelle come azioni dei luoghi dalla cartella del negozio e lì, il file delle azioni dei luoghi e dovremo inviare 39 00:03:23,410 --> 00:03:30,670 un'azione, quindi importerò l'uso della spedizione da React Redux e quindi qui creeremo quella funzione di 40 00:03:30,700 --> 00:03:34,680 spedizione eseguendo l'uso spedizione e ora quando questo 41 00:03:34,900 --> 00:03:41,830 componente viene caricato, che alla fine possiamo scoprire con l'aiuto dell'effetto use, voglio inviare questa 42 00:03:41,830 --> 00:03:44,520 azione di caricamento dei dati. 43 00:03:44,520 --> 00:03:49,800 Quindi qui possiamo eseguire use effect e nella funzione che passiamo per use 44 00:03:49,840 --> 00:03:56,170 effect, voglio inviare le azioni dei luoghi. loadPlaces, 45 00:03:56,180 --> 00:04:05,090 giusto, così. Ciò significa che per questo effetto, abbiamo una dipendenza, che è l'azione di invio che 46 00:04:05,090 --> 00:04:07,040 non dovrebbe mai cambiare, quindi quindi 47 00:04:07,100 --> 00:04:11,960 dovrebbe essere eseguita solo una volta quando viene creato il componente, che è esattamente il comportamento che 48 00:04:11,960 --> 00:04:12,610 voglio qui. 49 00:04:13,910 --> 00:04:19,400 Quindi ora l'azione di caricamento dei luoghi dovrebbe essere inviata all'avvio della nostra app e, in effetti, 50 00:04:19,400 --> 00:04:25,160 è stata avviata qui su iOS già e ora anche su Android e quindi qui nel registro, vedo 51 00:04:25,160 --> 00:04:29,820 un output e questo è il registro Android e questo è il risultato dal carico 52 00:04:29,820 --> 00:04:32,960 posiziona l'azione alla fine. Come vedi, questo è il risultato 53 00:04:32,960 --> 00:04:38,100 della nostra azione sul database, inserire ID non è definito perché non abbiamo inserito qualcosa, ma abbiamo semplicemente ottenuto qualcosa. 54 00:04:38,300 --> 00:04:43,820 Abbiamo quel campo di righe e questo è un altro oggetto che ha un campo _array che contiene una matrice di 55 00:04:43,820 --> 00:04:46,990 oggetti e, alla fine, questo è il nostro posto dati, giusto? 56 00:04:47,000 --> 00:04:49,300 Questo oggetto qui, ecco i nostri 57 00:04:49,310 --> 00:04:52,940 dati sui luoghi, ha l'indirizzo, l'ID, imageUri e così via. 58 00:04:52,940 --> 00:04:57,830 Quindi è nel risultato in righe e poi in _array, ecco dove vivono 59 00:04:57,830 --> 00:04:59,410 i nostri dati. 60 00:04:59,450 --> 00:05:06,110 Questo è ciò di cui abbiamo bisogno nel file delle azioni dei luoghi qui quando inviamo i nostri luoghi che 61 00:05:06,110 --> 00:05:08,150 vogliamo visualizzare, che vogliamo caricare 62 00:05:08,150 --> 00:05:14,600 in Redux, che dovrebbe essere dbResult. filari. _Vettore. 63 00:05:14,680 --> 00:05:21,790 Ora, naturalmente, ciò innesca le azioni dei luoghi impostati, quindi ora nel riduttore dei luoghi, dobbiamo preoccuparci 64 00:05:21,790 --> 00:05:22,820 di questo, 65 00:05:22,840 --> 00:05:27,140 quindi qui aggiungo un caso, imposta i luoghi, assicurati di 66 00:05:27,250 --> 00:05:35,210 importare l'identificatore dei luoghi impostati qui e nei luoghi impostati In questo caso, posso restituire una nuova istantanea di 67 00:05:35,210 --> 00:05:41,310 stato in cui i miei posti sono sostanzialmente impostati sui luoghi che sono tornato dal 68 00:05:41,750 --> 00:05:47,510 database e lo faccio impostandolo su azione. posti perché nel mio file delle azioni, ho questa 69 00:05:47,510 --> 00:05:48,300 chiave 70 00:05:48,320 --> 00:05:50,410 dei luoghi nell'azione a destra che 71 00:05:51,380 --> 00:05:59,520 è i dati dei luoghi caricati e lì voglio solo mappare questo array in un nuovo array per trasformare i dati, per trasformare ogni singolo 72 00:05:59,520 --> 00:06:07,170 posto in un nuovo posto che segue il mio modello di luogo dove ad esempio converto l'ID del luogo che abbiamo caricato in 73 00:06:07,230 --> 00:06:09,680 una stringa che è facoltativa, voglio solo 74 00:06:09,690 --> 00:06:13,670 mostrarti come puoi anche trasformare i dati se necessario, puoi farlo con 75 00:06:13,710 --> 00:06:17,440 il metodo map che mappa questo array in un nuovo array. 76 00:06:17,670 --> 00:06:18,140 Quindi 77 00:06:18,150 --> 00:06:24,660 lì lo faccio, mantengo comunque il titolo, mantengo l'immagineUri e non ho solo bisogno di indirizzo e latitudine e così via in 78 00:06:24,660 --> 00:06:25,650 questo momento, ecco 79 00:06:26,190 --> 00:06:29,520 anche perché lo sto mappando in modo da poter elaborare alcuni dati, 80 00:06:29,520 --> 00:06:35,720 quindi ora mappa questo array di luoghi che carico in un nuovo array di luoghi in cui mi occupo solo di 81 00:06:35,720 --> 00:06:36,900 ID, titolo e imageUri. 82 00:06:37,970 --> 00:06:43,670 Ora, se lo salviamo, dovremmo effettivamente essere in grado di vedere i nostri luoghi caricati qui su Android, quel 83 00:06:43,880 --> 00:06:49,880 posto che abbiamo memorizzato prima e in effetti, eccolo qui. Questo è il nostro posto, è 84 00:06:49,890 --> 00:06:53,180 un posto carico. Con ciò, ora 85 00:06:53,410 --> 00:06:57,850 possiamo concentrarci su come ottenere ovviamente la posizione dell'utente.