⊗jsrxPmATCDT 47 of 57 menu

Mengirim Thunk dari Komponen di Redux

Pada pelajaran ini kita akan mengirim thunk untuk mengambil produk dari komponen React ProductsList.

Sekarang mari buka aplikasi kita dengan produk, dan di dalamnya file ProductsList.jsx. Pertama-tama mari tambahkan impor thunk fetchProducts, yang telah kita buat:

import { selectAllProducts, fetchProducts } from './productsSlice'

Kita juga akan membutuhkan hook useDispatch untuk mengirim action creator kita dan hook useEffect karena di sini kita memiliki efek samping, karena kita berurusan dengan jaringan, dan ini sudah merupakan API eksternal:

import { useEffect } from 'react' import { useSelector, useDispatch } from 'react-redux'

Sekarang baris pertama dalam kode fungsi ProductsList sebelum deklarasi products mari tambahkan:

const dispatch = useDispatch()

Selanjutnya saat mengambil produk dari state kita juga akan mengekstrak status permintaan:

const products = useSelector(selectAllProducts) const productStatus = useSelector((state) => state.products.status)

Dan segera setelah itu beri tahu React menggunakan hook useEffect, bahwa setelah komponen dirender kita perlu mengambil produk. Di sini kita akan membutuhkan status permintaan, karena penting bagi kita bahwa permintaan seperti itu dikirim hanya sekali:

useEffect(() => { if (productStatus === 'idle') { dispatch(fetchProducts()) } }, [productStatus, dispatch])

Sekarang kita dapat menjalankan aplikasi kita, klik pada 'Products' di menu sebelah kiri. Kita belum akan melihat daftar produk, tetapi jika kita buka Redux DevTools kita, maka di bagian kiri jendela kecil kita akan muncul action yang digenerate secara otomatis (seperti yang saya katakan di pelajaran sebelumnya) products/fetchProducts/pending dan fulfilled. Sekarang mari klik action products/fetchProducts/fulfilled dan pada fieldnya payload - itulah daftar produk kita! Hore, semua mata rantai kita - server, basis data, klien dan aplikasi Redux - bekerja selaras dan bersama-sama. Omong-omong, seperti yang Anda lihat di sini juga ada properti meta, di mana kita melihat status permintaan.

Mari perhatikan satu hal lagi, Anda mungkin mengalami bahwa pending dan, akibatnya, fulfilled akan ditampilkan dua kali. Jika ini terjadi, jangan kecewa, kita akan membicarakannya nanti.

Buka aplikasi Anda dengan siswa. Buka di dalamnya file StudentsList.jsx. Impor ke dalamnya hook yang diperlukan dan thunk sesuai materi dari pelajaran.

Setelah mempelajari materi pelajaran, dapatkan status permintaan studentStatus, lalu, menggunakan useEffect, kirim fetchStudents hanya dengan syarat bahwa nilai studentStatus adalah 'idle'.

Jalankan aplikasi Anda, klik di menu aplikasi sebelah kiri pada 'Students', lalu jalankan ekstensi Redux DevTools di browser, seperti di pelajaran ini Anda harus melihat action dengan pending dan fulfilled (dan di dalamnya payload dengan siswa). Jelajahi tab-tab ekstensi.

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