⊗jsrxPmATSL 56 of 57 menu

Eladók listája a Redux-ban

Az előző órákon befejeztük az alapanyagot. Most a thunk segítségével lekérjük a termékek listáját a szerverről, és el tudjuk menteni egy új terméket a szerverre. Foglalkozzunk az eladókkal. Hiszen adatokat kapunk értük is. Készítsünk egy külön oldalt az eladók listájával.

Nyissuk meg a termékalkalmazásunkat, és benne a sellers mappát. Hozzunk létre ebben a mappában a SellersList.jsx fájlt. Itt fogjuk használni a useSelector, Link és a selectAllSellers-t, amelynek kódját kiírjuk a sellersSlice.js-ben kicsit később:

import { useSelector } from 'react-redux' import { Link } from 'react-router-dom' import { selectAllSellers } from './sellersSlice'

Ezután hozzuk létre magát a SellersList-et. Ebben megkapjuk az összes eladót a useSelector hook segítségével, majd megkapjuk a listaelemeket az eladók listájához a map ciklussal, ahol minden eladó neve egy link lesz a saját oldalára. És a végén adjuk vissza a HTML-t a címmel és a kapott listával:

export const SellersList = () => { const sellers = useSelector(selectAllSellers) const sellersToRender = sellers.map((seller) => ( <li key={seller.id}> <Link to={`/sellers/${seller.id}`}>{seller.name}</Link> </li> )) return ( <div> <h2>Sellers:</h2> <ul>{sellersToRender}</ul> </div> ) }

Ezután menjünk a sellersSlice.js fájlba, és hasonlóan a szelektorokhoz a productsSlice.js-ben, hozzunk létre a fájl legvégén, a reducer exportja után két szelektort:

export const selectAllSellers = (state) => state.sellers export const selectSellerById = (state, sellerId) => state.sellers.find((seller) => seller.id === sellerId)

Most meg kell adnunk az útvonalat a listaoldalhoz, ehhez nyissuk meg a App.jsx fájlt, és a gyermek útvonalak children tömbjéhez adjunk hozzá még egy objektumot (ne felejtsük el importálni a SellersList komponenst):

{ path: '/sellers', element: <SellersList />, },

Hogy a 'Sellers' menüben lévő linkünk működjön, menjünk a root.jsx fájlba (milyen régen volt ez ... ) és cseréljük le a a tag-et a NavLink elemre:

<NavLink to="/sellers" end> Sellers </NavLink>

És az utolsó. Hogy a menüben kijelölődjon az aktív link, és egyértelmű legyen, melyik oldalon vagyunk, adjunk hozzá stílust a index.css-be:

nav a.active { color: purple; }

Indítsuk el az alkalmazásunkat. Most már beléphetünk az eladók oldalára a 'Sellers'-re kattintva a menüben. Természetesen előbb kattintsunk a 'Products'-re a menüben, különben a termékeink nem töltődnek be. A következő leckén minden eladóhoz készítünk egy oldalt, és ezzel befejezzük a Redux tananyagának tanulmányozását.

Nyissa meg a diákalkalmazását. Tanulmányozva a lecke anyagát, a teachers mappában hozza létre a TeachersList.jsx fájlt. Ezzel a komponenssel fogja kiírni az oktatók listáját. Importálja ide a szükséges komponenseket és hook-okat.

Írja meg a TeachersList komponens kódját, szerezze be benne az összes oktatót, és készítsen egy oktatók listáját teachersToRender, minden sorban jelenjenek meg a vezetéknevük és a kezdőbetűjük, zárójelben pedig a tárgy, amelyet oktatnak. Minden név legyen egy link, amely az adott oktató külön oldalára vezet. Majd a komponens kódjának végén adja vissza a HTML-t a címmel és a létrehozott listával.

A teachersSlice.js fájl végén hozzon létre egy pár szelektor-függvényt: selectAllTeachers és selectTeacherById, ahogyan az a leckében is látható.

A App.jsx-ben kapcsoljon be még egy gyermek útvonalat az oktatók oldalához.

A root.jsx fájlban a menüben a 'Teachers'-hez cserélje le a a tag-et NavLink-re, ahogyan az a leckében látható. Ügyeljen arra, hogy az aktív link a menüben valahogy kiemelkedjen, ehhez adjon hozzá stílusokat a index.css-be.

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