⊗jsrxPmRDMDO 30 of 57 menu

Duomenų iš Redux slice pakartotinis naudojimas

Ankstesnėje pamokoje mes prie formos produktui pridėti pridėjome dar vieną lauką su išskleidžiamuoju sąrašu pardavėjo pasirinkimui, kuris jį pateikia. Tarkime, dabar mums reikia šią informaciją atvaizduoti dar kelvietėse programoje. Tam mes kaskart nedubliuosime kodo, o tiesiog sukursime atskirą komponentą, kuriame ištrauksime duomenis iš slice ir atvaizduosime tas programos dalyse, kur mums reikia.

Atidarykime mūsų produktų programą. Dabar aplanke products sukurkime dar failą SellerOfProd.jsx. Pirmiausia importuokime hook'ą useSelector, kurio pagalba mes gausime slice su reikiamu produktu:

import { useSelector } from 'react-redux'

Tada ištraukime iš store reikiamą produktą pagal pardavėjo id, kurį mes perduosime mūsų naujam komponentui props'uose:

export const SellerOfProd = ({ sellerId }) => { const seller = useSelector((state) => state.sellers.find((seller) => seller.id === sellerId) ) }

Ir tuo atveju, jei toks pardavėjas yra, mes grąžinsime jo pavadinimą, o jei ne, tai grąžinsime 'unknown':

return <span>by {seller ? seller.name : 'unknown'}</span>

Dabar importuokime mūsų naująjį komponentą į ProductsList.jsx ir įterpkime jį funkcijoje ProductsList iškart po antraštės su produkto pavadinimu. Kaip matote, mes perduodame jam props'uose id:

<SellerOfProd sellerId={product.seller} />

Dabar, jei paleisime mūsų programą, pridėsime naują produktą ir rasime jį sąraše, pamatysime, kad jis turi pardavėją, o automatiniu būdu pridėti produktai programos paleidimo metu, turės 'unknown'.

Maža pastaba: jei jūsų eslint redaktoriuje VS Code skundžiasi dėl sellerId, o programa veikia, tai galite kol kas ignoruoti tai arba atidaryti failą .eslintrc.cjs jūsų programos ir rules pridėti "react/prop-types": "off".

Savaime suprantama, kad mes norėtume pridėti informaciją apie pardavėją ir produkto puslapyje. Tam įterpkime vaizde ProductPage po antraštės su produkto pavadinimu vėl šią eilutę ir patikrinkime, kad viskas veikia:

<SellerOfProd sellerId={product.seller} />

Atidarykite savo studentų programą. Išstudijavę pamokos medžiagą, aplanke students sukurkite failą komponentui TeacherForStudent. Rezultate komponentas turėtų grąžinti dėstytojo Vardą Pavardę, o šalia skliausteliuose dalyką, kurį jis dėsto. Reikiamą dėstytoją suraskite naudodami hook'ą useSelector. Jei dėstytojas duotam studentui nerastas, atvaizduokite 'anonym'.

Naudodami gautą komponentą iš ankstesnės užduoties atvaizduokite duomenis dėstytojo kiekvienam studentui pushlapyje su studentų sąrašu.

Atlikite tą patį, ką ir ankstesnėje užduotyje, bet atskiram studento pushlapiui.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti