⊗jsrxPmATDT 54 of 57 menu

Mengirim Data menggunakan Thunk di Redux

Pada pelajaran sebelumnya, kita telah mempelajari penanganan POST request di server palsu kita. Sekarang mari kita tulis fungsi thunk yang akan mengirim request ke server.

Buka aplikasi produk kita, dan di dalamnya file productsSlice.js. Sekarang setelah thunk fetchProducts, kita akan menggunakan createAsyncThunk untuk membuat thunk addProduct:

export const addProduct = createAsyncThunk()

Parameter pertama yang kita berikan ke createAsyncThunk adalah 'products/addProduct', dan parameter kedua adalah asynchronous callback, yang akan menerima objek dengan data produk baru:

export const addProduct = createAsyncThunk( 'products/addProduct', async (newProduct) => {} )

Dalam kode callback ini, kita akan memanggil client, memberikannya path dan objek produk sebagai parameter, kemudian mengembalikan data respons:

export const addProduct = createAsyncThunk( 'products/addProduct', async (newProduct) => { const response = await client.post('/fakeServer/products', newProduct) return response.data } )

Sekarang lihat ke bawah pada field reducers untuk productsSlice. Sebelumnya kita menambahkan produk baru menggunakan reducer productAdded, yang di dalamnya terdapat metode reducer dan prepare. Sekarang kita menghasilkan data yang diperlukan di server dan bekerja dengan thunk, jadi kita akan menghapus sepenuhnya reducer productAdded dari kode ini. Kemudian tambahkan ke dalam method extraReducers (di akhir kodenya) satu reducer tambahan lagi, yang dalam kasus request berhasil akan menambahkan ke slice products produk baru langsung dari payload action (ingat, kode seperti ini dimungkinkan berkat createSlice yang unik):

.addCase(addProduct.fulfilled, (state, action) => { state.products.push(action.payload) })

Ya, omong-omong, jangan lupa hapus nanoid dari baris import, dan productAdded dari export actions di akhir file.

Buka aplikasi siswa Anda. Buka file studentsSlice.js di dalamnya. Dengan menggunakan createAsyncThunk, buat satu thunk lagi addStudent, yang akan mengirim POST request ke server untuk menambahkan siswa baru, seperti yang ditunjukkan dalam pelajaran.

Selanjutnya, di bawah ini, lakukan perubahan untuk studentsSlice: hapus sepenuhnya reducer studentAdded di dalam properti reducers. Dan di field extraReducers tambahkan reducer tambahan, yang akan menambahkan siswa baru ke slice students dari payload action dalam kasus request berhasil, seperti yang ditunjukkan dalam pelajaran.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak