Mengambil data dari database lokal kami tidak jauh berbeda dengan mengambilnya dari server web, alih-alih
menjangkau server web, kami hanya menjangkau database lokal kami,
tetapi hanya itu.
Jadi mari kita mulai dengan menulis fungsi dalam file pembantu db yang memungkinkan kita untuk mengambil data dari database.
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
ingin menjangkau basis data saya dan mendapatkan semua tempat. Jadi saya akan menyalin kode itu di
sini dari tempat yang disisipkan dengan janji dan seterusnya, tetapi
kueri akan berubah sekarang dan juga argumen, saya tidak perlu argumen karena kita tidak akan menyuntikkan
argumen di sini.
Alih-alih menjalankan masukkan ke dalam, kita perlu menjalankan kueri yang berbeda dan itu
akan menjadi kueri yang sangat sederhana, saya ingin memilih semua tempat di tabel tempat saya yang dilakukan dengan
menjalankan select * yang berarti saya ingin mendapatkan semua kolom, semua bidang dalam database ini dari tempat.
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
tidak akan melakukannya di sini, saya
ingin mendapatkan semua tempat jadi saya akan menjalankan kueri ini dan biarkan sisanya sebagaimana adanya
dan sekarang kita hanya perlu pergi ke tindakan kita dan memastikan kita memiliki tindakan untuk ini.
Jadi pertama-tama, saya akan menambahkan pengidentifikasi baru di sini,
pengidentifikasi tindakan baru, mengatur tempat, seperti yang kami lakukan dalam modul HTTP untuk mengatur tempat yang kami ambil dari
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,
saya akan mengembalikan fungsi batin ini dan saya menggunakan async menunggu di sana, jadi fungsi ini terlihat seperti ini,
di mana pada akhirnya tentu saja kami mengirim tindakan objek di mana jenisnya harus mengatur
tempat dan di mana kita mengatur semua tempat
yang kita muat tapi tentu saja itu bagian yang hilang. Kami mendapatkan tempat dengan menjalankan fungsi tempat pengambilan yang baru saja saya
tentukan di file pembantu, di file db di sana, jadi
mari kita mengimpornya dari
sana dan kemudian di sini di pembuat tindakan tempat muat, kita dapat menjalankan mengambil tempat seperti ini, ini mengembalikan
janji sehingga kami bisa menunggu ini
dan lagi kami mendapatkan hasil db kami di sini.
Sekarang kita juga bisa membungkus ini menjadi blok coba tangkap untuk memastikan kita menangkap kesalahan yang bisa terjadi, jadi di
sini jika kita memiliki kesalahan, saya hanya akan membuangnya, jadi
kita perlu menanganinya dalam komponen sebenarnya, saya tidak melakukan
itu di sini tetapi Anda bisa menanganinya dengan cara yang sama Anda menanganinya dalam modul HTTP
misalnya dan dengan itu di
sini akhirnya, juga di blok coba, kita dapat mengirim tempat-tempat yang kita ambil. Untuk itu penting bagi kita untuk memahami bagaimana hasil basis
data terlihat, jadi saya akan menghibur hasil
log DB di sini sehingga kita dapat melihat ke dalamnya dan sekarang saya ingin mengeksekusi memuat tempat di
layar daftar tempat saya karena di situlah saya membutuhkan semua tempat, kan?
Jadi di sini, saya akan mengimpor bintang sebagai tindakan tempat dari folder toko dan di sana, file tindakan tempat dan kita perlu mengirim tindakan,
jadi saya akan mengimpor pengiriman menggunakan dari React Redux dan kemudian di sini kita membuat
fungsi pengiriman dengan mengeksekusi penggunaan kirim dan sekarang
ketika komponen ini dimuat, yang akhirnya bisa kita ketahui dengan bantuan efek penggunaan, saya ingin
mengirimkan tindakan pemuatan data ini.
Jadi di sini kita dapat menjalankan efek penggunaan dan dalam fungsi yang kita lewati
untuk menggunakan efek, saya ingin mengirimkan tindakan tempat. loadPlaces,
benar, seperti ini. Sekarang itu berarti bahwa untuk efek ini, kita memiliki satu ketergantungan, yaitu tindakan pengiriman
yang tidak boleh berubah, jadi karena
itu ini hanya boleh berjalan sekali ketika komponen dibuat, yang persis perilaku yang saya inginkan di
sini.
Jadi sekarang aksi memuat tempat harus dikirim ketika aplikasi kita mulai dan memang, itu sudah mulai
di sini di iOS dan sekarang juga di Android dan karena itu di sini di log, saya
melihat beberapa output dan itu adalah log Android dan itulah hasilnya dari aksi
memuat tempat pada akhirnya. Seperti yang Anda lihat, itulah
hasil dari tindakan basis data kami, memasukkan ID tidak terdefinisi karena kami tidak memasukkan sesuatu, kami hanya mendapatkan sesuatu.
Kami memiliki bidang baris itu dan itu adalah objek lain yang memiliki bidang _array yang menampung array objek
dan pada akhirnya, itu adalah data tempat kami, kan?
Objek ini di sini, itu
adalah data tempat kami, memiliki alamat, ID, imageUri, dan sebagainya.
Jadi itu adalah hasil dalam baris dan kemudian _array, di situlah
data kami tinggal.
Jadi itulah yang kita butuhkan di file tindakan tempat di sini ketika kita mengirim tempat yang ingin kita
tampilkan, yang ingin kita
muat ke Redux, yang seharusnya dbResult. baris. _Himpunan.
Sekarang tentu saja, yang kemudian memicu tindakan set tempat, jadi sekarang di peredam tempat, kita perlu peduli
tentang ini,
jadi di sini saya menambahkan kasus, mengatur tempat, pastikan Anda
mengimpor pengidentifikasi tempat set di sini dan di tempat yang ditetapkan kasus, saya dapat mengembalikan snapshot keadaan baru di
mana tempat saya pada dasarnya diatur ke tempat saya kembali dari database dan saya
melakukan ini dengan mengaturnya untuk bertindak. tempat karena dalam file tindakan saya, saya memiliki
kunci
tempat ini dalam aksi yang merupakan
data tempat yang dimuat dan di sana saya hanya ingin memetakan array ini menjadi array baru untuk mengubah data, untuk mengubah setiap tempat
menjadi tempat baru yang mengikuti model tempat saya di mana saya misalnya mengonversi ID tempat kami memuat ke string yang opsional, saya
hanya ingin menunjukkan kepada Anda bagaimana Anda
juga dapat mengubah data jika Anda perlu, Anda dapat melakukan ini
dengan metode peta yang memetakan larik ini ke larik baru.
Jadi begitulah, saya menyimpan judulnya, saya menyimpan imageUri dan saya tidak perlu alamat dan garis lintang dan sebagainya sekarang, itu juga
mengapa saya
memetakan ini sehingga saya bisa menggambar beberapa data, jadi sekarang
saya memetakan array tempat yang saya muat ke array tempat-tempat baru di mana saya hanya peduli dengan ID,
judul, dan imageUri.
Sekarang dengan itu jika kita menyimpan ini, kita seharusnya benar-benar dapat melihat tempat kita dimuat di sini di Android,
tempat yang kita simpan sebelumnya dan memang, ini dia. Jadi itu tempat kami, tempat
itu penuh. Dengan itu,
sekarang kita bisa fokus juga mendapatkan lokasi pengguna tentunya.