⊗jsrxPmATGS 51 of 57 menu

Henting av selgerdata i Redux

La oss starte applikasjonen vår med produkter. Vi ser at i produktkortene vises ikke selgerne. La oss hente dem fra serveren og vise disse dataene. For å gjøre dette må vi gjennomføre den allerede kjente handlingssekvensen.

Først åpner vi filen server.js. Finner arrayet handlers og legger til en ny behandling av GET-forespørselen (etter behandling av GET for produkter). Som du ser er den nesten identisk:

http.get('/fakeServer/sellers', async () => { await delay(ARTIFICIAL_DELAY_MS) return HttpResponse.json(db.seller.getAll()) }),

Vi har behandlet forespørselen på serveren. Neste trinn er at vi i filen sellersSlice.js må skrive en thunk for å hente data fra serveren. For å gjøre dette importerer vi client og createAsyncThunk inn i den:

import { createSlice, createAsyncThunk } from '@reduxjs/toolkit' import { client } from '../../api/client'

Nå skal vi hente selgere fra serveren, så vi fjerner dem fra initialState, og lar den være bare tomme parenteser:

const initialState = []

Og så før funksjonen sellersSlice oppretter vi vår thunk fetchSellers. Til klienten sender vi stien som er spesifisert av oss på serveren:

export const fetchSellers = createAsyncThunk( 'sellers/fetchSellers', async () => { const response = await client.get('/fakeServer/sellers') return response.data } )

Alt som gjenstår for oss er å for sellersSlice opprette en ekstra reducer. La oss begrense oss her til behandling av vellykket forespørsel. Alle handlinger, generert av fetchSellers, vil være identiske med handlingene fra fetchProducts:

const sellersSlice = createSlice({ name: 'sellers', initialState, reducers: {}, extraReducers(builder) { builder.addCase(fetchSellers.fulfilled, (state, action) => { return action.payload }) }, })

Jeg minner om at forrige gang vi hentet produkter endret vi den nåværende tilstandsverdien. Her brukte vi en litt annen tilnærming og bare returnerte en ny verdi, slik man også kan gjøre i createSlice. Dermed oppnådde vi to mål. For det første fikk vi data, og for det andre har vi nå en garanti for at selgerlisten ikke vil inneholde noe annet, fordi vi fullstendig overskrev slicen med verdien action.payload.

Åpne studentapplikasjonen din. Åpne filen server.js i den, legg til en ny behandler for GET-forespørsel for lærere i arrayet handlers.

Åpne nå filen teachersSlice.js. Gjør initialState til en tom array, slik som vist i leksjonen. Før funksjonen studentsSlice skriv thunken fetchTeachers.

I funksjonen createSlice skriv den ekstra reduceren, begrens deg til behandling av vellykket forespørsel.

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