⊗jsrxPmATSL 56 of 57 menu

Verkäuferliste in Redux

In den vorherigen Lektionen haben wir den grundlegenden Stoff abgeschlossen. Jetzt erhalten wir mit Hilfe von Thunk eine Liste von Produkten vom Server und können ein neues Produkt auf dem Server speichern. Lassen Sie uns die Verkäufer behandeln. Schließlich erhalten wir auch Daten für sie. Lassen Sie uns eine separate Seite mit einer Liste der Verkäufer erstellen.

Öffnen wir unsere Produktanwendung und darin den Ordner sellers. Wir erstellen in diesem Ordner die Datei SellersList.jsx. Hier werden wir useSelector, Link und selectAllSellers verwenden, dessen Code wir später in sellersSlice.js schreiben werden:

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

Als nächstes erstellen wir die SellersList selbst. Darin erhalten wir alle Verkäufer mit dem Hook useSelector, dann holen wir das Markup für die Liste der Verkäufer in einer map-Schleife, wobei jeder Verkäufername zu seiner eigenen Seite führen wird. Und am Ende geben wir das Markup mit der Überschrift und der erstellten Liste zurück:

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>Verkäufer:</h2> <ul>{sellersToRender}</ul> </div> ) }

Dann gehen wir in die Datei sellersSlice.js und erstellen, analog zu den Selektoren in productsSlice.js, am Ende der Datei zwei Selektoren nach dem Export des Reduzierers:

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

Jetzt müssen wir die Route für die Seite mit der Liste festlegen. Dazu öffnen wir die Datei App.jsx und fügen dem Array der untergeordneten Routen children ein weiteres Objekt hinzu (vergessen Sie nicht, die Komponente SellersList zu importieren):

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

Damit unser Link 'Sellers' im Menü funktioniert, gehen wir in die Datei root.jsx (wie lange ist das her ... ) und ersetzen das Tag a durch das Element NavLink:

<NavLink to="/sellers" end> Verkäufer </NavLink>

Und zum Schluss. Damit in unserem Menü der aktive Link hervorgehoben wird und klar ist, auf welcher Seite wir uns befinden, fügen wir einen Stil in index.css hinzu:

nav a.active { color: purple; }

Starten wir unsere Anwendung. Jetzt können wir auf die Seite mit den Verkäufern gelangen, indem wir auf 'Verkäufer' im Menü klicken. Zuvor muss natürlich auf 'Produkte' im Menü geklickt werden, sonst werden unsere Produkte nicht geladen. In der nächsten Lektion erstellen wir eine Seite für jeden Verkäufer und schließen damit das Studium dieses Redux-Lehrgangs ab.

Öffnen Sie Ihre Anwendung mit den Studenten. Nachdem Sie die Unterrichtsmaterialien studiert haben, erstellen Sie in dem Ordner teachers die Datei TeachersList.jsx. Mit Hilfe dieser Komponente werden Sie eine Liste der Lehrer ausgeben. Importieren Sie darin die notwendigen Komponenten und Hooks.

Schreiben Sie den Code für die Komponente TeachersList. Holen Sie sich darin alle Lehrer und erstellen Sie eine Liste der Lehrer teachersToRender. Lassen Sie in jeder Zeile dieser Liste deren Nachnamen und Initialen anzeigen, und in Klammern das Fach, das sie unterrichten. Lassen Sie jeder vollständige Name einen Link sein, der zu einer separaten Seite für jeden Lehrer führt. Geben Sie dann am Ende des Komponentencodes das Markup mit der Überschrift und der erstellten Liste zurück.

Erstellen Sie am Ende der Datei teachersSlice.js ein Paar Selektorfunktionen selectAllTeachers und selectTeacherById, wie in der Lektion gezeigt.

Fügen Sie in App.jsx eine weitere untergeordnete Route für die Seite mit den Lehrern hinzu.

Ersetzen Sie in der Datei root.jsx im Menü für 'Lehrer' das Tag a durch NavLink, wie in der Lektion gezeigt. Sorgen Sie dafür, dass der aktive Link im Menü hervorgehoben wird, indem Sie dafür Stile in index.css hinzufügen.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen