⊗jsrxPmATGS 51 of 57 menu

Verkopergegevens ophalen in Redux

Laten we onze applicatie met producten starten. We zien dat in de productkaarten de verkopers niet worden weergegeven. Laten we ze van de server halen en deze gegevens tonen. Hiervoor moeten we de reeds bekende reeks handelingen uitvoeren.

Laten we eerst het bestand server.js openen. Zoek de array handlers en voeg er nog een verwerking van een GET-request aan toe (na de verwerking van GET voor producten). Zoals u ziet is deze bijna identiek:

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

We hebben het request op de server verwerkt. De volgende stap is dat we in het bestand sellersSlice.js een thunk moeten schrijven om gegevens van de server op te halen. Importeer hiervoor client en createAsyncThunk:

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

Omdat we de verkopers nu van de server gaan halen, verwijderen we ze uit de initialState, en laten we alleen een lege array staan:

const initialState = []

En dan, voor de functie sellersSlice, maken we onze thunk fetchSellers aan. We geven aan de client het pad door dat we op de server hebben opgegeven:

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

Het enige wat we nog hoeven te doen is een extra reducer maken voor sellersSlice. Laten we ons hier beperken tot het afhandelen van een succesvolle request. Alle actions, gegenereerd door fetchSellers, zullen identiek zijn aan de actions van fetchProducts:

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

Ik herinner u eraan dat we de vorige keer bij het ophalen van producten de huidige waarde van de state wijzigden. Hier hebben we een iets andere aanpak gekozen en simpelweg een nieuwe waarde geretourneerd, dit kan ook in createSlice. Daarmee hebben we twee doelen bereikt. Ten eerste hebben we de gegevens opgehaald, en ten tweede hebben we nu de garantie dat er in de lijst met verkopers niets anders zal verschijnen, omdat we de slice volledig hebben overschreven met de waarde action.payload.

Open uw applicatie met studenten. Open daarin het bestand server.js, voeg in de array handlers nog een handler toe voor een GET-request voor docenten.

Open nu het bestand teachersSlice.js. Maak de initialState een lege array, zoals getoond in de les. Schrijf voor de functie studentsSlice de thunk fetchTeachers.

Voeg in de functie createSlice de extra reducer toe, beperk u tot het afhandelen van een succesvolle request.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren