⊗jsrxPmATSL 56 of 57 menu

Seznam prodejců v Reduxu

V předchozích lekcích jsme dokončili hlavní materiál. Nyní pomocí thunk získáme seznam produktů ze serveru a můžeme uložit nový produkt na server. Pojďme se vypořádat s prodejci. Koneckonců získáváme data i pro ně. Vytvořme samostatnou stránku se seznamem prodejců.

Otevřeme naši aplikaci s produkty a v ní složku sellers. Vytvořme v této složce soubor SellersList.jsx. Zde budeme používat useSelector, Link a selectAllSellers, jehož kód napíšeme v sellersSlice.js o něco později:

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

Dále vytvoříme samotný SellersList. V něm získáme všechny prodejce pomocí hooku useSelector, poté získáme kód pro seznam prodejců ve smyčce map, přičemž každý název prodejce nás povede na jeho stránku. A na konci vrátíme kód s nadpisem a získaným seznamem:

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> ) }

Poté přejdeme do souboru sellersSlice.js a analogicky k selektorům v productsSlice.js vytvoříme na samém konci souboru dva selektory po exportu reduceru:

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

Nyní musíme nastavit trasu pro stránku se seznamem, proto otevřeme soubor App.jsx a do pole podřízených tras children přidáme další objekt (nezapomeňte importovat komponentu SellersList):

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

Aby náš odkaz 'Sellers' v menu fungoval, přejděme do souboru root.jsx (jak je to dávno co bylo ... ) a nahraďme tag a elementem NavLink:

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

A nakonec. Aby se v našem menu zvýraznil aktivní odkaz a bylo jasné, na které stránce se nacházíme, přidáme styl do index.css:

nav a.active { color: purple; }

Spustíme naši aplikaci. Nyní můžeme přejít na stránku s prodejci kliknutím na 'Sellers' v menu. Samozřejmě předtím je třeba kliknout na 'Products' v menu, jinak se naše produkty nenačtou. V příští lekci vytvoříme stránku pro každého prodejce a tím ukončíme studium tohoto učebního textu pro Redux.

Otevřete vaši aplikaci se studenty. Po prostudování materiálu lekce ve složce teachers vytvořte soubor TeachersList.jsx. Pomocí této komponenty budete zobrazovat seznam učitelů. Importujte do ní potřebné komponenty a hooky.

Napište kód pro komponentu TeachersList, získejte v ní všechny učitele a vytvořte seznam učitelů teachersToRender, nechť v každém řádku tohoto seznamu se zobrazí jejich příjmení a iniciály a v závorce předmět, který učí. Nechť každé příjmení s iniciálami bude odkazem, který vede na samostatnou stránku pro každého učitele. Poté na konci kódu komponenty vraťte kód s nadpisem a vytvořeným seznamem.

Na konci souboru teachersSlice.js vytvořte pár funkcí-selektorů selectAllTeachers a selectTeacherById, jak je ukázáno v lekci.

V App.jsx připojte další podřízenou trasu pro stránku s učiteli.

V souboru root.jsx v menu pro 'Teachers' nahraďte tag a NavLink, jak je ukázáno v lekci. Udělejte to tak, aby aktivní odkaz v menu byl nějak zvýrazněn, přidáním pro tento účel stylů do index.css.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout