⊗jsrxPmATGS 51 of 57 menu

Pārdevēju datu iegūšana Redux

Palaismiet mūsu lietotni ar produktiem. Mēs redzam, ka produktu kartītēs netiek rādīti pārdevēji. Iegūsim tos no servera un izvadīsim šos datus. Lai to izdarītu, mums būs jāveic jau pazīstama darbību secība.

Sākumā atveriet failu server.js. Atrodiet massīvu handlers un pievienojiet tam vēl vienu GET pieprasījuma apstrādi (pēc produktu GET apstrādes). Kā redzat, tā ir gandrīz identiska:

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

Mēs apstrādājām pieprasījumu serverī. Nākamais posms ir failā sellersSlice.js jāuzraksta thunk datu iegūšanai no servera. Lai to izdarītu, importējiet tajā client un createAsyncThunk:

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

Tagad mēs iegūsim pārdevējus no servera, tāpēc noņemsim tos no initialState, atstājot tikai tukšas iekavas:

const initialState = []

Un pēc tam pirms funkcijas sellersSlice izveidosim mūsu thunk fetchSellers. Klientam mēs nodosim ceļu, ko norādījām serverī:

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

Mums atliek tikai sellersSlice izveidot papildu reducer. Ierobežosimies ar veiksmīga pieprasījuma apstrādi. Visas darbības, ko ģenerē fetchSellers, būs identiskas fetchProducts darbībām:

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

Atgādināšu, ka pagājušajā reizē, iegūstot produktus, mēs mainījām pašreizējo stāvokļa vērtību. Šeit mēs izmantojām nedaudz atšķirīgu ceļu un vienkārši atgriezām jauno vērtību, jo arī createSlice to var izdarīt. Tādējādi mēs sasniedzām divus mērķus. Pirmkārt, mēs ieguvām datus, un, otrkārt, tagad mums ir garantija, ka pārdevēju sarakstā ne parādīsies kaut kas cits, jo mēs pilnībā pārrakstījām slice ar vērtību action.payload.

Atveriet savu lietotni ar studentiem. Atveriet tajā failu server.js, pievienojiet massīvam handlers vēl vienu apstrādātāju lektoru GET pieprasījumam.

Un tagad atveriet failu teachersSlice.js. Padariet initialState par tukšu masīvu, kā parādīts nodarbībā. Pirms funkcijas studentsSlice uzrakstiet thunk fetchTeachers.

Funkcijā createSlice papildiniet ar papildu reducer, ierobežojieties ar veiksmīga pieprasījuma apstrādi.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt