Untuk memastikan bahwa kami juga dapat memiliki pesanan di aplikasi ini, kami akan mengulangi sesuatu yang kami lakukan
sebelumnya, kami akan bekerja pada layar pesanan dan kami akan bekerja pada logika Redux kami sehingga kami dapat menyimpan pesanan.
Jadi saya akan
mulai dengan menambahkan peredam baru, pesanan. File js yang menyimpan peredam pesanan kami dan tentu saja kami juga akan memerlukan file
tindakan tempat kami mengelola tindakan terkait pesanan kami, pesanan. File js juga.
Jadi mari kita mulai dengan pesanan. File reduksi js di sini dan lagi seperti biasa, kita
akan ingin memiliki beberapa keadaan awal di sini yang juga jenis mendefinisikan bagaimana data kita dibentuk di sana dan pesanan akan sangat
sederhana dalam aplikasi ini,
itu hanya akan menjadi array pesanan , itu benar-benar yang kita butuhkan.
Kemudian kita dapat mengekspor fungsi default di sini yang merupakan peredam kami, yang tentu saja memiliki keadaan yang diinisialisasi
dengan keadaan awal, yang menerima tindakan dan yang tentu saja semua ditangani oleh Redux dan kami mengembalikan negara kami di sini
tetapi
tentu saja biasanya, kami juga kemudian ingin mengaktifkan jenis tindakan dan menangani beberapa kasus berbeda di sini,
jadi kami sudah dapat menambahkan pernyataan beralih ini. Sekarang mengenai kasus yang ingin
kami tangani, tindakan yang ingin kami tangani, ada satu tindakan yang ingin saya
tangani saat ini dan itu adalah tindakan menambahkan pesanan saya, jadi menambahkan pesanan juga terlihat seperti pengidentifikasi
pas dan kemudian saya akan mengekspor tambahkan pembuat tindakan pesanan di sini yang seharusnya menerima dua hal sekarang -
item keranjang saya atau item yang menjadi bagian dari pesanan tetapi ini adalah
item keranjang saya akhir dan tentu saja jumlah total dan itu tentu saja semua data
yang kita miliki di keranjang pada akhirnya, kita berhasil dalam kereta, kan?
Kami memiliki jumlah total gerobak dan kami memiliki item dari gerobak dan karena kami memesan seluruh gerobak
kami, tentu saja masuk akal bahwa data ini berakhir dalam urutan.
Sekarang di sini di pembuat tindakan, oleh karena itu kami mengembalikan objek
tindakan baru kami dan objek tindakan ini memiliki jenis yang menambahkan pesanan dan kemudian misalnya kunci data pesanan tempat kami menggabungkan
item keranjang kami, menyimpannya di properti item keranjang dan kemudian jumlah memegang jumlah total misalnya.
Sekarang terserah Anda apakah Anda meneruskan ini dalam satu properti data pesanan gabungan atau jika Anda memiliki dua
properti atau lebih sebagai bagian dari objek tindakan Anda.
Ini aksinya, kembali ke peredam, apa yang harus terjadi ketika kita mendapatkan pesanan?
Yah saya ingin membuat objek pesanan baru dan untuk ini, seperti sebelumnya, saya akan bekerja dengan model saya sendiri.
Jadi mari kita pergi ke folder model dan di sana, tambahkan pesanan. File js di mana kami memiliki perintah kelas yang akan
saya
ekspor sehingga saya tidak lupa lagi dan di sana, kami mendapatkan konstruktor yang memungkinkan kami membuat pesanan baru.
Sekarang bagaimana seharusnya sebuah pesanan? Pesanan harus memiliki ID tentu saja, yang bukan
ID produk karena tentu saja kami dapat memesan produk yang sama beberapa kali dan karenanya, pesanan benar-benar terpisah.
Selain itu, pesanan dapat menampung lebih dari satu
produk, pada akhirnya kami memesan seluruh gerobak kami di sana.
Jadi pesanan memiliki ID
mandiri, itu akan mendapatkan barang, jumlah total dan pesanan juga perlu tanggal tentu saja karena ketika kami melakukan
pemesanan, kami ingin menyimpan tanggal itu ketika dibuat.
Dan kemudian saya akan menyimpan
semua data itu, dapatkan ID saya, dapatkan barang saya di sini, dapatkan jumlah totalnya dan juga dapatkan tanggalnya. Dengan itu mari kita kembali ke peredam, ke peredam pesanan dan melihat apa
yang bisa kita lakukan dengan pesanan di sana. Di sana, saya ingin menangani case add
order sekarang yang merupakan satu-satunya tindakan yang saya miliki.
Jadi, Anda perlu mengimpor pengidentifikasi tindakan ini tentu saja dan di sana, saya ingin membuat pesanan baru, menyimpannya dalam konstanta
pesanan
baru dengan model pesanan yang baru saja kami buat yang karena itu Anda juga harus mengimpor.
Sekarang dengan kata kunci baru, kita dapat membuat objek Javascript baru berdasarkan kelas itu dan di sana, kita
memerlukan ID, item, jumlah total dan tanggal yang dibuat.
Sekarang kami hanya mendapatkan barang dan jumlah total sebagai bagian dari tindakan kami di sini seperti yang Anda tahu.
Sekarang ID adalah sesuatu yang nantinya akan kita hasilkan secara dinamis di
server, untuk saat ini, saya akan menggunakan ID unik palsu palsu dengan tanggal baru untuk string, tanggal tentu saja
adalah objek Javascript built-in dan ini pada akhirnya menghasilkan ID yang agak unik.
Secara teknis, kami dapat membuat dua pesanan pada stempel waktu yang sama persis, pada milidetik yang sama persis, meskipun di
aplikasi kami tempat kami membersihkan keranjang setelah menekan tambah pesanan atau pesanan sekarang,
ini tidak akan benar-benar mungkin.
Jadi ini adalah ID boneka yang baik untuk saat ini, itu
harus berupa string sehingga itu
penting dan selain itu, item tentu saja, yang dapat disimpan. Kami mendapatkan ini pada tindakan kami, benar,
tindakan memiliki properti data pesanan ini dan di sana, kami akan memiliki item.
Jadi data pesanan tindakan. item memberi kita item dan untuk jumlah total, kita dapat
menggunakan tindakan.
data pesanan.
dan kemudian di sana, kita memiliki properti jumlah ini yang dapat
kita ekstrak, sehingga kita dapat menggunakannya.
Terakhir tetapi tidak kalah pentingnya untuk tanggal tersebut, saya tentu saja ingin membuat timestamp di sini
dengan tanggal baru, konstruktor Javascript bawaan ini, jika kita menjalankannya seperti ini memberi kita cap waktu saat
ini yang disimpan dalam objek Javascript pada akhirnya.
Sekarang pesanan baru ini hanya perlu ditambahkan ke susunan pesanan kami, jadi kami mengembalikan snapshot keadaan baru di
sini tempat kami menyalin keadaan lama,
sekali lagi kami tidak benar-benar memiliki keadaan lain di sini, jadi menyalinnya adalah mubazir
jika kami mengganti Bagaimanapun
juga, jika Anda memiliki snapshot keadaan yang lebih kompleks di sini untuk potongan toko Redux Anda ini, Anda
ingin memastikan Anda menyalin keadaan lain sehingga Anda tidak kehilangan itu.
Itu sebabnya saya menambahkannya di sini dan kemudian saya menetapkan pesanan sama dengan perintah negara dan sekarang memanggil concat pada array
ini yang merupakan fungsi Javascript built-in yang menambahkan item baru ke array dan mengembalikan array baru yang
mencakup item itu.
Jadi array lama tetap tidak tersentuh, array baru dikembalikan dan tentu saja memungkinkan kita untuk memperbarui ini dengan cara yang
tidak berubah di mana kita tidak pernah menyentuh data asli tetapi kita menetapkan negara baru dengan membuat array baru yang
mencakup objek baru dan di sana saya hanya menggabungkan pesanan baru saya. Dengan itu, kita
bisa masuk ke aplikasi. File js dan mengimpor peredam pesanan di sana dari folder
store, folder reduksi dan di sana, pesanan. File js tentu saja dan menggabungkannya ke
dalam peredam root kami, mungkin dengan pengidentifikasi pesanan dan kemudian menunjuk pada peredam pesanan.
Sekarang ini harus tersedia dan sekarang kita dapat mengirimkan tindakan, yaitu di sini tindakan pesanan tambahan kami
dan tentu saja memasuki bagian slice dan dapatkan pesanan kami. Tindakan pengiriman adalah hal pertama yang ingin saya
lakukan, saya ingin melakukannya dari dalam layar keranjang ketika kami menekan tombol pesanan sekarang.
Saat ini kami tidak melakukan apa-apa
di sana, sekarang tujuannya adalah untuk melakukan pemesanan dan juga membersihkan keranjang kami. Jadi di sini, di layar keranjang,
kami sudah melakukan impor menggunakan pengiriman dan kami menjalankannya sehingga kami memiliki fungsi pengiriman.
Yang perlu kita lakukan adalah kita perlu mengimpor semuanya sebagai tindakan pesanan dari pesanan tindakan toko dan oleh karena itu saya akan menamai
tindakan pesanan ini menjadi sangat tepat dan sekarang
di sini ketika kita mengklik tombol ini, tombol pesanan sekarang, kita dapat menjalankan
fungsi dan dalam fungsi ini, kami mengirimkan tindakan Redux, tindakan pesanan, tambahkan pesanan dengan pembuat
tindakan ini. Sekarang di sana kita harus melewati dua hal - item keranjang dan jumlah total. Tentu saja keduanya
tersedia di sini, jumlah total disimpan dalam jumlah total keranjang konstan, item keranjang ada di
sini, jadi kami hanya meneruskan ini, kami meneruskan jumlah total keranjang dan yang seharusnya menjadi argumen
kedua, sehingga sebagai argumen pertama, sebenarnya item keranjang, seperti ini. Sekarang harap dicatat bahwa dengan itu tentu saja, saya meneruskan item keranjang, saya
menyimpan item keranjang yang ada dalam array dan tidak dalam format yang saya miliki di toko
keranjang Redux saya. Di sana, saya
memang punya objek tetapi menyimpan array item keranjang seperti itu dalam urutan harus benar-benar baik-baik saja, jadi tidak
perlu
untuk mendapatkan objek yang tidak berubah juga, saya
akan tetap
berpegang pada array yang sekarang saya simpan.
Jadi sekarang kita kirim ini, untuk melihatnya,
kita sekarang perlu menambahkan layar pesanan dan untuk itu,
saya juga ingin menambahkan tombol menu dan laci yang memungkinkan kita untuk sampai ke sana sebagai alternatif untuk layar
toko kami di sini.