⊗jsrxPmATCDT 47 of 57 menu

Dërgimi i thunk nga një komponent në Redux

Në këtë mësim do të dërgojmë një thunk për të marrë produktet nga komponenti React ProductsList.

Tani le të hapim aplikacionin tonë të produkteve, dhe në të skedarin ProductsList.jsx. Për të filluar, le të shtojmë importin e thunk fetchProducts, që krijuam:

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

Gjithashtu do të na duhet hook useDispatch për të dërguar krijuesin tonë të veprimit (action creator) dhe hook useEffect sepse këtu kemi një efekt anësor, pasi kemi të bëjmë me rrjetin, dhe ky është tashmë një API i jashtëm:

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

Tani, në rreshtin e parë të kodit të funksionit ProductsList para deklarimit të products le të shtojmë:

const dispatch = useDispatch()

Më pas, kur marrim produktet nga gjendja (state) do të nxjerrim edhe statusin e kërkesës:

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

Dhe menjëherë pas kësaj, le t'i tregojmë React me ndihmën e hook useEffect, që pas renderimit të komponentit na duhet të marrim produktet. Këtu na duhet statusi i kërkesës, sepse është e rëndësishme që një kërkesë e tillë të dërgohet vetëm një herë:

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

Tani mund të ekzekutojmë aplikacionin tonë, të klikojmë në 'Products' në menunë majtas. Ne nuk do të shohim listën e produkteve ende, por nëse shkojmë në Redux DevTools tonë, atëherë në pjesën e majtë të dritares do të shfaqen veprimet (actions) e krijuara automatikht (siç thashë në mësimin e kaluar) products/fetchProducts/pending dhe fulfilled. Tani le të klikojmë në action products/fetchProducts/fulfilled dhe në fushën e tij payload - ja ku është lista jonë e produkteve! Ura, të gjitha lidhjet tona në zinxhir - serveri, baza e të dhënave, klienti dhe aplikacioni Redux - punojnë në mënyrë të koordinuar dhe së bashku. Meqë ra fjala, siç mund ta shihni këtu ka edhe vetinë meta, ku mund të shohim statusin e kërkesës.

Le t'i kushtojmë vëmendje një gjëje tjetër, ju mund të ndodhë që pending dhe, rrjedhimisht, fulfilled të shfaqen dy herë. Nëse ndodh kështu, mos u hidhëroni, do të flasim për këtë më vonë.

Hapni aplikacionin tuaj me studentët. Hapni skedarin StudentsList.jsx në të. Importoni në të hook-et e nevojshme dhe thunk sipas materialit nga mësimi.

Pasi të keni studiuar materialet e mësimit, merrni statusin e kërkesës studentStatus, dhe më pas, duke përdorur useEffect, dërgoni fetchStudents vetëm nëse vlera e studentStatus është 'idle'.

Ekzekutoni aplikacionin tuaj, klikoni në menunë e aplikacionit majtas në 'Students', dhe më pas nisni shtesën (extension) Redux DevTools në shfletues, ashtu si në këtë mësim ju duhet të shihni veprimet (actions) me pending dhe fulfilled (dhe në të payload me studentët). Eksploroni skedat e ndryshme të shtesës.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo