⊗jsrxPmATCDT 47 of 57 menu

Menghantar Thunk dari Komponen dalam Redux

Dalam pelajaran ini, kita akan menghantar thunk untuk mendapatkan produk dari komponen React ProductsList.

Sekarang mari buka aplikasi produk kami, dan dalamnya fail ProductsList.jsx. Pertama, mari tambahkan import untuk thunk fetchProducts yang kami buat:

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

Kami juga memerlukan hook useDispatch untuk menghantar action creator kami dan hook useEffect kerana di sini kami mempunyai kesan sampingan, kerana kami berurusan dengan rangkaian, dan itu sudah menjadi API luaran:

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

Sekarang baris pertama dalam kod fungsi ProductsList sebelum pengisytiharan products mari tambahkan:

const dispatch = useDispatch()

Seterusnya, apabila mendapatkan produk dari keadaan kami juga akan mengekstrak status permintaan:

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

Dan segera selepas itu, beritahu React menggunakan hook useEffect, bahawa selepas komponen dipaparkan kami perlu mendapatkan produk. Di sini kami memerlukan status permintaan, kerana adalah penting untuk kami bahawa permintaan sedemikian dihantar hanya sekali:

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

Sekarang kami boleh menjalankan aplikasi kami, klik pada 'Products' dalam menu di sebelah kiri. Kami belum akan melihat senarai produk, tetapi jika kami pergi ke Redux DevTools kami, maka di sebelah kiri tetingkap kecil kami akan melihat yang dijana secara automatik (seperti yang saya katakan dalam pelajaran lepas) tindakan products/fetchProducts/pending dan fulfilled. Sekarang mari klik pada action products/fetchProducts/fulfilled dan pada medannya payload - inilah senarai produk kami! Horey, semua pautan kami dalam rantaian - pelayan, pangkalan data, pelanggan dan aplikasi Redux - berfungsi dengan teratur dan bersama-sama. Dengan cara itu, seperti yang anda lihat di sini juga ada sifat meta, di mana kami melihat status permintaan.

Mari kita perhatikan satu perkara lagi, anda mungkin mengalami situasi di mana pending dan, oleh itu, fulfilled akan ditunjukkan dua kali. Jika ya, jangan kecewa, kita akan membincangkannya kemudian.

Buka aplikasi pelajar anda. Buka fail StudentsList.jsx di dalamnya. Import hook yang diperlukan dan thunk mengikut bahan dari pelajaran.

Setelah mengkaji bahan pelajaran, dapatkan status permintaan studentStatus, dan kemudian, menggunakan useEffect, hantar fetchStudents hanya dengan syarat bahawa nilai studentStatus adalah 'idle'.

Jalankan aplikasi anda, klik dalam menu aplikasi di sebelah kiri pada 'Students', dan kemudian jalankan sambungan Redux DevTools dalam pelayar, seperti dalam pelajaran ini anda sepatutnya melihat tindakan dengan pending dan fulfilled (dan dalamnya payload dengan pelajar). Terokai tab sambungan.

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