⊗jsrxPmATGS 51 of 57 menu

Obtention des données des vendeurs dans Redux

Lançons notre application avec les produits. Nous voyons que les vendeurs ne s'affichent pas dans les fiches produits. Récupérons-les depuis le serveur et affichons ces données. Pour cela, nous allons devoir effectuer la séquence d'actions déjà familière.

Pour commencer, ouvrons le fichier server.js. Trouvons le tableau handlers et ajoutons-y un autre traitement de requête GET (après le traitement GET pour les produits). Comme vous pouvez le voir, il est pratiquement identique :

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

Nous avons traité la requête côté serveur. À l'étape suivante, dans le fichier sellersSlice.js, nous devons écrire un thunk pour récupérer les données du serveur. Pour cela, importons client et createAsyncThunk dedans :

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

Maintenant que nous allons récupérer les vendeurs depuis le serveur, retirons-les de initialState, en laissant simplement des crochets vides :

const initialState = []

Ensuite, avant la fonction sellersSlice, créeons notre thunk fetchSellers. Nous transmettrons au client le chemin que nous avons spécifié sur le serveur :

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

Il ne nous reste plus qu'à créer un réducteur supplémentaire pour sellersSlice. Limitons-nous ici au traitement de la requête réussie. Toutes les actions générées par fetchSellers seront identiques aux actions de fetchProducts :

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

Je rappelle que la dernière fois, lors de la récupération des produits, nous modifiions la valeur actuelle de l'état. Ici, nous avons utilisé une approche légèrement différente et simplement retourné une nouvelle valeur, car dans createSlice c'est aussi possible. Ainsi, nous avons atteint deux objectifs. Premièrement, nous avons obtenu les données, et deuxièmement, nous avons maintenant la garantie que la liste des vendeurs ne contiendra rien d'autre, car nous avons entièrement remplacé le slice par la valeur de action.payload.

Ouvrez votre application avec les étudiants. Ouvrez le fichier server.js dedans, ajoutez un autre gestionnaire pour la requête GET des enseignants dans le tableau handlers.

Maintenant, ouvrez le fichier teachersSlice.js. Faites de initialState un tableau vide, comme montré dans la leçon. Avant la fonction studentsSlice, écrivez le thunk fetchTeachers.

Dans la fonction createSlice, ajoutez un réducteur supplémentaire, limitez-vous au traitement de la requête réussie.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser