⊗jsrxPmATCDT 47 of 57 menu

Kutuma Thunk Kutoka Kwenye Sehemu ya Mtumiaji Hadı Redux

Katika somo hili tutatumia thunk kutoka kwenye sehemu ya mtumiaji ya React ProductsList ili kupata bidhaa.

Sasa tufungue programu yetu ya bidhaa, na ndani yake faili ProductsList.jsx. Kwanza tuongeze thunk fetchProducts ambayo tumeunda kwenye usajili:

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

Pia tutahitaji kutumia kuingiza useDispatch ili kutuma kinjili yetu cha utengenezaji wa hatua na kuingiza useEffect kwa sababu hapa tuna athari ya upande, kwa kuwa tunashughulika na mtandao, na hii ni API ya nje:

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

Sasa mstari wa kwanza katika msimbo wa kazi ProductsList kabla ya tangazo la products tuongeze:

const dispatch = useDispatch()

Ifuatayo wakati wa kupata bidhaa kutoka kwenye hali tutachukua pia hali ya ombi:

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

Na mara moja baada ya hii tumeambia React kwa kutumia kuingiza useEffect, kwamba baada ya kuona kijenzi tunahitaji kupata bidhaa. Hapa tutahitaji hali ya ombi, kwa sababu inatuambia ombi litumwe mara moja tu:

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

Sasa tunaweza kuanzisha programu yetu, bonyeza kwenye 'Products' kwenye menyu ya kushoto. Bado hatutaona orodha ya bidhaa, lakini kama tutaingia kwenye Redux DevTools yetu, basi upande wa kushoto kwa dirisha letu zitaonekana hatua zilizotengenezwa moja kwa moja (kama nilivyosema katika somo lililopita) products/fetchProducts/pending na fulfilled. Sasa tubonyeze kwenye hatua products/fetchProducts/fulfilled na uga wake payload - hapa ndio orodha yetu ya bidhaa! Hongera, sehemu zetu zote katika mnyororo - seva, hifadhi data, mteja na programu ya Redux - zinafanya kazi kwa umoja na pamoja. Kwa njia, kama unavyoona hapa kuna sifa meta, ambayo tunaona hali ya ombi.

Tuzingatie jambo lingine, inaweza kutokea kwako kwamba pending na, kwa hiyo, fulfilled zitaonyeshwa mara mbili. Ikiwa ni hivyo, usihuzunike, tutazungumzia hili baadaye.

Fungua programu yako ya wanafunzi. Fungua ndani yake faili StudentsList.jsx. Usajilishe ndani yake viingizio muhimu na thunk kulingana na nyenzo kutoka kwenye somo.

Baada ya kusoma nyenzo za somo, pata hali ya ombi studentStatus, na kisha, kwa kutumia useEffect, tuma fetchStudents tu kwa sharti kwamba thamani ya studentStatus ni 'idle'.

Anzisha programu yako, bonyeza kwenye menyu ya programu kushoto kwenye 'Students', kisha anzisha kwenye kivinjari kiongezo cha Redux DevTools, kama ilivyo kwenye somo hili unapaswa kuona hatua za pending na fulfilled (na ndani yake payload na wanafunzi). Pitia kwenye vilango vya kiongezo.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa