⊗jsrxPmSDSO 36 of 57 menu

Marrja e Selektorëve në Redux

Ndonjëherë është shumë e dobishme të heqësh qafe kodin e panevojshëm në aplikacion, si dhe të inkapsulosh të dhënat.

Le të hapim aplikacionin tonë me produktet. Kushtojini vëmendje faktit që në disa vende të aplikacionit ne, duke përdorur selektorë, nxjerrim slice-in me produkte për të kryer disa veprime me të.

Tani do të hapim productsSlice.js-ton, do të zbresim në fund të skedarit dhe do të shtojmë disa rreshta kodi, ku do të shkruajmë dy selektorë dhe do t'i eksportojmë ato. Një funksion do të jetë për marrjen e të gjitha produkteve:

export const selectAllProducts = (state) => state.products.products

Dhe pas tij i dyti - për marrjen e një produkti sipas id:

export const selectProductById = (state, productId) => state.products.products.find((product) => product.id === productId)

Sigurisht mund të keni një pyetje të drejtë - nga na vjen një ndërtim i tillë: state.products.products? Përgjigjja është e thjeshtë, ne në mësimin e kaluar ndryshuam strukturën e slice-it dhe tani produktet tona do të gjenden në formë array në vetinë e veçantë products të slice-it të produkteve state.products (mbani mend se këtu state është objekti rrënjë i gjendjes së Redux, i cili përmban të gjitha slice-et).

Kështu ne thjesht e zhvendosëm kodin për funksionet-selektorë në një vend të vetëm në aplikacion dhe tani na duhet të bëjmë ndryshimet përkatëse aty, ku i kemi përdorur. Le të fillojmë me skedarin ProductsList.jsx. Le të importojmë në të selectAllProducts, pasi këtu na duhen të gjitha produktet:

import { selectAllProducts } from './productsSlice'

Dhe në fillim të kodit të funksionit ProductsList, le të zëvendësojmë:

const products = useSelector((state) => state.products)

Me rreshtin:

const products = useSelector(selectAllProducts)

Tani le të kalojmë te skedari ProductPage.jsx. Këtu na duhej produkti sipas id. Le të bëjmë zëvendësimin e rreshtit (mos harroni për importin):

const product = useSelector((state) => state.products.find((product) => product.id === productId) )

Me:

const product = useSelector((state) => selectProductById(state, productId))

Bëni vetë një zëvendësim të ngjashëm në skedarin EditProductForm.jsx. Këtu na duhet gjithashtu një produkt sipas id.

Mbani mend, që një optimizim i tillë është vetëm për lehtësinë tuaj dhe ju mund ta bëni atë kur të mendoni se është e nevojshme dhe e përshtatshme. Në shembullin tonë, imagjinoni që ne do të shkruanim kodin e funksionit-selektor çdo herë në vende të ndryshme, dhe pastaj do të ndryshonim strukturën e state, dhe do të duhej ta korrigjonim atë në të gjitha komponentët.

Hapni aplikacionin tuaj me studentët. Hapni në të skedarin studentsSlice.js. Në fund të skedarit shkruani dhe eksportoni, siç tregohet në mësim, dy selektorë për marrjen e të gjithë studentëve selectAllStudents dhe për marrjen e një studenti sipas id selectStudentById.

Tani importoni selectAllStudents dhe selectStudentById në skedarët StudentsList.jsx, StudentPage.jsx dhe EditStudentForm.jsx, bëni në këto skedarë ndryshimet përkatëse, siç tregohet në mësim.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo