⊗jsrxPmRDMDO 30 of 57 menu

Adatok újrahasználata slice-ból Redux-ban

Az előző órán hozzáadtuk a termék hozzáadására szolgáló űrlaphoz egy további mezőt egy legördülő listával az eladó kiválasztásához, aki feltölti azt. Tegyük fel, most ezt az információt ki kell írnunk még néhány más helyen is az alkalmazásban. Ehhez nem fogjuk minden alkalommal megismételni a kódot, hanem egyszerűen létrehozunk egy külön komponenst, amely kinyeri az adatokat a slice-ból és kiírja azokat az alkalmazás azon részein, ahol szükségünk van rá.

Nyissuk meg a termék alkalmazásunkat. Most a products mappában hozzunk létre még egy SellerOfProd.jsx fájlt. Kezdetként importáljuk a useSelector hook-ot, amellyel megkapjuk a kívánt terméket tartalmazó slice-ot:

import { useSelector } from 'react-redux'

Ezután nyerjük ki a store-ból a szükséges eladót az eladó azonosítója alapján, amelyet átadunk az új komponensünknek a props-on keresztül:

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

És abban az esetben, ha van ilyen eladó, visszaadjuk a nevét, ha pedig nincs, akkor visszaadjuk a 'unknown' értéket:

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

Most importáljuk az új komponensünket a ProductsList.jsx fájlba és helyezzük el a ProductsList függvényben, közvetlenül a terméknévvel ellátott cím után. Amint látható, átadtuk neki az azonosítót a props-on keresztül:

<SellerOfProd sellerId={product.seller} />

Most, ha elindítjuk az alkalmazásunkat, hozzáadunk egy új terméket és megtaláljuk a listában, akkor látni fogjuk, hogy megjelent hozzá az eladó, míg az alkalmazás indításakor automatikusan hozzáadott termékeknél 'unknown' lesz.

Egy kis kitérő: ha az eslint a VS Code szerkesztőben panaszkodik a sellerId használatára, de az alkalmazás működik, akkor ignorálhatja egyelőre, vagy megnyithatja az alkalmazás .eslintrc.cjs fájlját és a rules részhez hozzáadhatja a "react/prop-types": "off" szabályt.

Magától értetődik, hogy szeretnénk hozzáadni az eladó adatait a termék oldalán is. Ehhez illesszük be a ProductPage komponens JSX-ében, a terméknévvel ellátott cím után ismét ezt a sort és ellenőrizzük, hogy minden működik:

<SellerOfProd sellerId={product.seller} />

Nyissa meg a diákokkal kapcsolatos alkalmazását. Miután tanulmányozta a lecke anyagát, a students mappában hozzon létre egy fájlt a TeacherForStudent komponens számára. Ennek eredményeképpen a komponensnek vissza kell adnia a tanár teljes nevét, mellette zárójelben pedig a tanított tárgyat. A szükséges tanárt keresse meg a useSelector hook segítségével. Ha a tanár az adott diákhoz hiányzik, jelenítse meg a 'anonym' értéket.

Az előző feladatban kapott komponens segítségével jelenítse meg a tanár adatait minden diákhoz a diákok listáját tartalmazó oldalon.

Ismételje meg azt, amit az előző feladatban tett, de most az egyes diákok oldalán.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás