⊗jsrxPmATCDT 47 of 57 menu

Udsendelse af thunk fra komponent i Redux

I denne lektion vil vi sende en thunk for at hente produkter fra React-komponenten ProductsList.

Lad os nu åbne vores produktapplikation, og i den filen ProductsList.jsx. Til at starte med tilføjer vi importen af thunken fetchProducts, som vi oprettede:

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

Vi har også brug for hooket useDispatch for at sende vores action creator og hooket useEffect fordi vi her har en bivirkning, da vi har at gøre med netværk, og det er allerede en ekstern API:

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

Nu som første linje i koden for funktionen ProductsList før deklarationen af products tilføjer vi:

const dispatch = useDispatch()

Dernæst, når vi henter produkter fra staten, vil vi også udtrække anmodningens status:

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

Og straks efter fortæller vi React ved hjælp af hooket useEffect, at vi efter rendering af komponenten skal hente produkter. Her har vi brug for anmodningens status, for det er vigtigt for os, at en sådan anmodning kun sendes én gang:

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

Lige nu kan vi starte vores applikation, klikke på 'Products' i menuen til venstre. Vi vil ikke se listen over produkter endnu, men hvis vi går ind i vores Redux DevTools, så i den venstre del af vinduet vil vores automatisk genererede (som jeg sagde i forrige lektion) actions products/fetchProducts/pending og fulfilled dukke op. Lad os nu klikke på action products/fetchProducts/fulfilled og på dets felt payload - der er vores lille produktliste! Hurra, alle vores led i kæden - server, database, klient og Redux - applikationen arbejder sammen og koordineret. Forresten, som I kan se, er der også en egenskab meta, hvor vi ser anmodningens status.

Lad os lægge mærke til en ting mere, det kan ske for dig, at pending og, følgelig, fulfilled vil blive vist to gange. Hvis det er tilfældet, vær ikke bekymret, vi taler om det senere.

Åbn din applikation med studerende. Åbn filen StudentsList.jsx i den. Importer de nødvendige hooks og thunk i overensstemmelse med materialet fra lektionen.

Efter at have studeret lektionens materiale, skal du hente anmodningens status studentStatus, og derefter, ved at bruge useEffect, sende fetchStudents kun under betingelsen af, at værdien af studentStatus er 'idle'.

Start din applikation, klik i applikationens menu til venstre på 'Students', og start derefter Redux DevTools-udvidelsen i browseren, som i denne lektion skal du se actions med pending og fulfilled (og i den payload med studerende). Udforsk fanebladene i udvidelsen.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis