⊗jsrxPmATGS 51 of 57 menu

Фурӯсандаҳо дар Redux гирифтани маълумотҳои

Биёед барномаи мо бо маҳсулот оғоз кунем. Мо мебинем, ки дар кортҳои маҳсулот фурӯсандаҳо намоиш дода намешаванд. Биёед онҳоро аз сервер гирем ва ин маълумотро чоп кунем. Барои ин мо бояд аллакай шинохташударо иҷро кунем пайдарпаии амалҳо.

Барои оғоз файли server.js кушоед. Массиви handlers пайдо кунед ва ба он як GET-дархости дигарро илова кунед (пас аз дархости GET барои маҳсулот). Ҳамон тавр ки мебинед, он тақрибан ҳамон аст:

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

Мо дархости дар сервер коркард кардем. Навбати мо дар файли sellersSlice.js бояд thunk барои гирифтани маълумот аз сервер нависем. Барои ин онро ба он client ворид кунед ва createAsyncThunk:

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

Акнун мо фурӯсандаҳоро аз сервер гирифта истодаем, пас онҳоро аз initialState хориҷ кунем, танҳо қавсҳои холӣ гузошта:

const initialState = []

Ва сипас пеш аз функсияи sellersSlice thunk-и мо fetchSellers эҷод кунем. Ба клиент мо роҳеро, ки мо дар сервер муайян кардем, мефиристем:

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

Ба мо танҳо барои sellersSlice редюсери иловагӣ эҷод кардан лозим аст. Мо дар ин ҷо коркарди дархости муваффақиятро маҳдуд мекунем. Ҳама action-ҳо, ки аз ҷониби fetchSellers тавлид мешаванд, ба action-ҳои fetchProducts монанданд:

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

Ёддиҳӣ мекунам, ки дафъаи гузашта вақти гирифтани маҳсулот мо арзиши ҷории стейтро тағир додем. Дар ин ҷо мо роҳи каме дигарро истифода кардем ва танҳо арзиши навро баргардондем, ҳамин тавр дар createSlice ҳам имконпазир аст. Бо ин роҳ мо ба ду мақсад ноил шудем. Аввалан, мо маълумот гирифтем, ва дуввуман, акнун мо кафолат дорем, ки дар рӯйхати фурӯсандаҳо чизи дигаре пайдо намешавад, зеро мо пурра слайсро бо арзиши action.payload навиштем.

Барномаи худро бо донишҷӯён кушоед. Дар он файли server.js кушоед, ба handlers як обработчики дигарро илова кунед барои дархости GET-и муаллимон.

Ва акнун файли teachersSlice.js кушоед. initialState-ро массивҳои холӣ кунед, тавре ки дар дарс нишон дода шуд. Пеш аз функсияи studentsSlice thunk-и fetchTeachers нависед.

Дар функсияи createSlice редюсери иловагиро илова кунед, худро ба коркарди дархости муваффақият маҳдуд кунед.

Тоҷикӣ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан