⊗jsrxPmRDMDO 30 of 57 menu

Andmete taaskasutamine Reduxi lõigust

Eelmisel tunnil lisasime toote lisamise vormile veel ühe välja rippmenüüga müüja valimiseks, kes selle postitab. Oletame, nüüd peame seda teavet kuvama veel mitmes rakenduse kohas. Selleks me ei korda iga kord koodi, vaid loome lihtsalt eraldi komponendi, milles hakkame andmeid lõigust hankima ja kuvama neis rakenduse osades, kus meil vaja on.

Avame oma tooterakenduse. Loome nüüd kaustas products veel faili SellerOfProd.jsx. Alustuseks impordime konksu useSelector, mille abil saame vajaliku tootega lõigu:

import { useSelector } from 'react-redux'

Seejärel hankigem store'ist vajaliku toote müüja id järgi, mille me edastame oma uuele komponendile propsidena:

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

Ja juhul, kui selline müüja on olemas, tagastame tema nime, aga kui mitte, siis tagastame 'unknown':

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

Importigem nüüd oma uue komponendi faili ProductsList.jsx ja paneme selle funktsiooni ProductsList kohe peale tootenime pealkirja. Nagu näete, andsime me talle propsidena id:

<SellerOfProd sellerId={product.seller} />

Nüüd, kui käivitame oma rakenduse, lisame uue toote ja leiame selle nimekirjast, siis näeme, et sellel on müüja, kuid automaatselt rakenduse käivitamisel lisatud toodetel on 'unknown'.

Väike kõrvalepõige: kui teie eslint VS Code'i redaktoris viriseb sellerId peale, kuid rakendus töötab, siis võite seda praegu ignoreerida või avada oma rakenduse faili .eslintrc.cjs ja rules alla lisada "react/prop-types": "off".

Iseenesestmõistetavalt sooviksime me müüja teavet lisada ka toote lehele. Selleks paneme veeristuses ProductPage peale toote nime pealkirja uuesti selle rea ja kontrollime, et kõik töötab:

<SellerOfProd sellerId={product.seller} />

Avage oma õpilaste rakendus. Pärast tunni materjali läbimist looge kaustas students fail komponendile TeacherForStudent. Tulemusena peaks komponent tagastama õpetaja ees- ja perekonnanime ning koolituse, mida ta õpetab. Vajaliku õpetaja leidke konksu useSelector abil. Kui õpetajat sellele õpilasele ei leidu, kuvage 'anonym'.

Kasutades eelmises ülesandes saadud komponenti, kuvage iga õpilase õpetaja andmed õpilaste nimekirja lehel.

Tehke sama, mis eelmises ülesandes, kuid üksiku õpilase lehe jaoks.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu