1 00:00:02,120 --> 00:00:08,120 Mengambil data dari database lokal kami tidak jauh berbeda dengan mengambilnya dari server web, alih-alih 2 00:00:08,150 --> 00:00:11,690 menjangkau server web, kami hanya menjangkau database lokal kami, 3 00:00:11,690 --> 00:00:13,010 tetapi hanya itu. 4 00:00:13,040 --> 00:00:18,950 Jadi mari kita mulai dengan menulis fungsi dalam file pembantu db yang memungkinkan kita untuk mengambil data dari database. 5 00:00:19,700 --> 00:00:26,750 Untuk ini, di sana saya akan mengekspor konstanta baru, mengambil tempat, yang seharusnya melakukan apa yang disarankan namanya, tidak memerlukan argumen dan tentu saja di sana, saya 6 00:00:26,750 --> 00:00:31,880 ingin menjangkau basis data saya dan mendapatkan semua tempat. Jadi saya akan menyalin kode itu di 7 00:00:31,880 --> 00:00:35,660 sini dari tempat yang disisipkan dengan janji dan seterusnya, tetapi 8 00:00:35,980 --> 00:00:41,840 kueri akan berubah sekarang dan juga argumen, saya tidak perlu argumen karena kita tidak akan menyuntikkan 9 00:00:41,840 --> 00:00:43,110 argumen di sini. 10 00:00:43,340 --> 00:00:48,620 Alih-alih menjalankan masukkan ke dalam, kita perlu menjalankan kueri yang berbeda dan itu 11 00:00:48,620 --> 00:00:55,520 akan menjadi kueri yang sangat sederhana, saya ingin memilih semua tempat di tabel tempat saya yang dilakukan dengan 12 00:00:55,520 --> 00:01:02,170 menjalankan select * yang berarti saya ingin mendapatkan semua kolom, semua bidang dalam database ini dari tempat. 13 00:01:02,180 --> 00:01:09,740 Sekarang jika Anda tahu sedikit SQL, sekarang Anda juga bisa menambahkan klausa mana untuk mengatakan di mana ID yang lebih besar misalnya dan seterusnya, tetapi saya 14 00:01:09,740 --> 00:01:11,780 tidak akan melakukannya di sini, saya 15 00:01:11,780 --> 00:01:16,150 ingin mendapatkan semua tempat jadi saya akan menjalankan kueri ini dan biarkan sisanya sebagaimana adanya 16 00:01:16,310 --> 00:01:20,870 dan sekarang kita hanya perlu pergi ke tindakan kita dan memastikan kita memiliki tindakan untuk ini. 17 00:01:21,530 --> 00:01:25,670 Jadi pertama-tama, saya akan menambahkan pengidentifikasi baru di sini, 18 00:01:25,700 --> 00:01:33,740 pengidentifikasi tindakan baru, mengatur tempat, seperti yang kami lakukan dalam modul HTTP untuk mengatur tempat yang kami ambil dari 19 00:01:33,970 --> 00:01:46,020 server dan dengan itu, saya dapat membuat pembuat tindakan baru di sini di mana saya mengatakan memuat tempat mungkin, di mana ini adalah nama dan di pembuat tindakan ini, 20 00:01:46,860 --> 00:01:54,980 saya akan mengembalikan fungsi batin ini dan saya menggunakan async menunggu di sana, jadi fungsi ini terlihat seperti ini, 21 00:01:54,990 --> 00:02:01,590 di mana pada akhirnya tentu saja kami mengirim tindakan objek di mana jenisnya harus mengatur 22 00:02:01,590 --> 00:02:05,300 tempat dan di mana kita mengatur semua tempat 23 00:02:06,020 --> 00:02:14,340 yang kita muat tapi tentu saja itu bagian yang hilang. Kami mendapatkan tempat dengan menjalankan fungsi tempat pengambilan yang baru saja saya 24 00:02:14,340 --> 00:02:17,700 tentukan di file pembantu, di file db di sana, jadi 25 00:02:17,700 --> 00:02:19,570 mari kita mengimpornya dari 26 00:02:20,370 --> 00:02:26,870 sana dan kemudian di sini di pembuat tindakan tempat muat, kita dapat menjalankan mengambil tempat seperti ini, ini mengembalikan 27 00:02:26,940 --> 00:02:28,970 janji sehingga kami bisa menunggu ini 28 00:02:28,970 --> 00:02:32,300 dan lagi kami mendapatkan hasil db kami di sini. 29 00:02:32,390 --> 00:02:37,820 Sekarang kita juga bisa membungkus ini menjadi blok coba tangkap untuk memastikan kita menangkap kesalahan yang bisa terjadi, jadi di 30 00:02:37,820 --> 00:02:40,580 sini jika kita memiliki kesalahan, saya hanya akan membuangnya, jadi 31 00:02:41,270 --> 00:02:43,900 kita perlu menanganinya dalam komponen sebenarnya, saya tidak melakukan 32 00:02:44,210 --> 00:02:48,620 itu di sini tetapi Anda bisa menanganinya dengan cara yang sama Anda menanganinya dalam modul HTTP 33 00:02:48,620 --> 00:02:50,420 misalnya dan dengan itu di 34 00:02:50,540 --> 00:02:58,000 sini akhirnya, juga di blok coba, kita dapat mengirim tempat-tempat yang kita ambil. Untuk itu penting bagi kita untuk memahami bagaimana hasil basis 35 00:02:58,010 --> 00:03:00,980 data terlihat, jadi saya akan menghibur hasil 36 00:03:00,980 --> 00:03:07,490 log DB di sini sehingga kita dapat melihat ke dalamnya dan sekarang saya ingin mengeksekusi memuat tempat di 37 00:03:07,520 --> 00:03:11,800 layar daftar tempat saya karena di situlah saya membutuhkan semua tempat, kan? 38 00:03:11,840 --> 00:03:23,020 Jadi di sini, saya akan mengimpor bintang sebagai tindakan tempat dari folder toko dan di sana, file tindakan tempat dan kita perlu mengirim tindakan, 39 00:03:23,410 --> 00:03:30,670 jadi saya akan mengimpor pengiriman menggunakan dari React Redux dan kemudian di sini kita membuat 40 00:03:30,700 --> 00:03:34,680 fungsi pengiriman dengan mengeksekusi penggunaan kirim dan sekarang 41 00:03:34,900 --> 00:03:41,830 ketika komponen ini dimuat, yang akhirnya bisa kita ketahui dengan bantuan efek penggunaan, saya ingin 42 00:03:41,830 --> 00:03:44,520 mengirimkan tindakan pemuatan data ini. 43 00:03:44,520 --> 00:03:49,800 Jadi di sini kita dapat menjalankan efek penggunaan dan dalam fungsi yang kita lewati 44 00:03:49,840 --> 00:03:56,170 untuk menggunakan efek, saya ingin mengirimkan tindakan tempat. loadPlaces, 45 00:03:56,180 --> 00:04:05,090 benar, seperti ini. Sekarang itu berarti bahwa untuk efek ini, kita memiliki satu ketergantungan, yaitu tindakan pengiriman 46 00:04:05,090 --> 00:04:07,040 yang tidak boleh berubah, jadi karena 47 00:04:07,100 --> 00:04:11,960 itu ini hanya boleh berjalan sekali ketika komponen dibuat, yang persis perilaku yang saya inginkan di 48 00:04:11,960 --> 00:04:12,610 sini. 49 00:04:13,910 --> 00:04:19,400 Jadi sekarang aksi memuat tempat harus dikirim ketika aplikasi kita mulai dan memang, itu sudah mulai 50 00:04:19,400 --> 00:04:25,160 di sini di iOS dan sekarang juga di Android dan karena itu di sini di log, saya 51 00:04:25,160 --> 00:04:29,820 melihat beberapa output dan itu adalah log Android dan itulah hasilnya dari aksi 52 00:04:29,820 --> 00:04:32,960 memuat tempat pada akhirnya. Seperti yang Anda lihat, itulah 53 00:04:32,960 --> 00:04:38,100 hasil dari tindakan basis data kami, memasukkan ID tidak terdefinisi karena kami tidak memasukkan sesuatu, kami hanya mendapatkan sesuatu. 54 00:04:38,300 --> 00:04:43,820 Kami memiliki bidang baris itu dan itu adalah objek lain yang memiliki bidang _array yang menampung array objek 55 00:04:43,820 --> 00:04:46,990 dan pada akhirnya, itu adalah data tempat kami, kan? 56 00:04:47,000 --> 00:04:49,300 Objek ini di sini, itu 57 00:04:49,310 --> 00:04:52,940 adalah data tempat kami, memiliki alamat, ID, imageUri, dan sebagainya. 58 00:04:52,940 --> 00:04:57,830 Jadi itu adalah hasil dalam baris dan kemudian _array, di situlah 59 00:04:57,830 --> 00:04:59,410 data kami tinggal. 60 00:04:59,450 --> 00:05:06,110 Jadi itulah yang kita butuhkan di file tindakan tempat di sini ketika kita mengirim tempat yang ingin kita 61 00:05:06,110 --> 00:05:08,150 tampilkan, yang ingin kita 62 00:05:08,150 --> 00:05:14,600 muat ke Redux, yang seharusnya dbResult. baris. _Himpunan. 63 00:05:14,680 --> 00:05:21,790 Sekarang tentu saja, yang kemudian memicu tindakan set tempat, jadi sekarang di peredam tempat, kita perlu peduli 64 00:05:21,790 --> 00:05:22,820 tentang ini, 65 00:05:22,840 --> 00:05:27,140 jadi di sini saya menambahkan kasus, mengatur tempat, pastikan Anda 66 00:05:27,250 --> 00:05:35,210 mengimpor pengidentifikasi tempat set di sini dan di tempat yang ditetapkan kasus, saya dapat mengembalikan snapshot keadaan baru di 67 00:05:35,210 --> 00:05:41,310 mana tempat saya pada dasarnya diatur ke tempat saya kembali dari database dan saya 68 00:05:41,750 --> 00:05:47,510 melakukan ini dengan mengaturnya untuk bertindak. tempat karena dalam file tindakan saya, saya memiliki 69 00:05:47,510 --> 00:05:48,300 kunci 70 00:05:48,320 --> 00:05:50,410 tempat ini dalam aksi yang merupakan 71 00:05:51,380 --> 00:05:59,520 data tempat yang dimuat dan di sana saya hanya ingin memetakan array ini menjadi array baru untuk mengubah data, untuk mengubah setiap tempat 72 00:05:59,520 --> 00:06:07,170 menjadi tempat baru yang mengikuti model tempat saya di mana saya misalnya mengonversi ID tempat kami memuat ke string yang opsional, saya 73 00:06:07,230 --> 00:06:09,680 hanya ingin menunjukkan kepada Anda bagaimana Anda 74 00:06:09,690 --> 00:06:13,670 juga dapat mengubah data jika Anda perlu, Anda dapat melakukan ini 75 00:06:13,710 --> 00:06:17,440 dengan metode peta yang memetakan larik ini ke larik baru. 76 00:06:17,670 --> 00:06:24,660 Jadi begitulah, saya menyimpan judulnya, saya menyimpan imageUri dan saya tidak perlu alamat dan garis lintang dan sebagainya sekarang, itu juga 77 00:06:24,660 --> 00:06:25,650 mengapa saya 78 00:06:26,190 --> 00:06:29,520 memetakan ini sehingga saya bisa menggambar beberapa data, jadi sekarang 79 00:06:29,520 --> 00:06:35,720 saya memetakan array tempat yang saya muat ke array tempat-tempat baru di mana saya hanya peduli dengan ID, 80 00:06:35,720 --> 00:06:36,900 judul, dan imageUri. 81 00:06:37,970 --> 00:06:43,670 Sekarang dengan itu jika kita menyimpan ini, kita seharusnya benar-benar dapat melihat tempat kita dimuat di sini di Android, 82 00:06:43,880 --> 00:06:49,880 tempat yang kita simpan sebelumnya dan memang, ini dia. Jadi itu tempat kami, tempat 83 00:06:49,890 --> 00:06:53,180 itu penuh. Dengan itu, 84 00:06:53,410 --> 00:06:57,850 sekarang kita bisa fokus juga mendapatkan lokasi pengguna tentunya.