⊗jsrxPmRDInr 20 of 57 menu

Datenverwaltung in Redux

Im vorherigen Abschnitt haben wir das grundlegende Schema von Redux implementiert und Sie kennen nun die Hauptprinzipien einer Redux-Anwendung. In den nächsten Lektionen werden wir die Funktionalität unserer Produktanwendung erweitern und mit Daten arbeiten.

Da die Anwendung um neue Komponenten und Routen erweitert wird, lassen Sie uns eine Sache mit dem Routing erledigen. Öffnen Sie die Produktanwendung, dann die Datei root.jsx. Importieren Sie darin die Komponente Outlet und löschen Sie dabei die Zeilen mit dem Import von ProductsList und NewProductForm:

import { Outlet } from 'react-router-dom'

Nun wird die Komponente Root unter dem Root-Pfad '/' angezeigt, und alle anderen Komponenten werden in den Kind-Routen im Outlet gerendert. Dazu passen wir das Markup der #main-page-Div für die Komponente Root leicht an:

<div id="main-page"> <h2>My Products App</h2> <hr></hr> <NewProductForm /> <ProductsList /> </div>

Hier setzen wir Outlet anstelle der Komponenten NewProductForm und ProductsList ein:

<div id="main-page"> <h2>My Products App</h2> <hr></hr> <Outlet /> </div>

Das Formular zum Hinzufügen von Produkten werden wir nun in ProductsList ausgeben. Lassen Sie uns die Datei mit dieser Komponente öffnen und den Import des Formulars hinzufügen:

import { NewProductForm } from './NewProductForm'

Und nun fügen wir die Formularkomponente direkt vor der Produktliste hinzu. Nun wird unser Markup so aussehen:

return ( <div> <NewProductForm /> <div> <h2>Products</h2> {dispProducts} </div> </div> )

Ergänzen wir den Stil für die Klasse products-list in index.css:

.products-list { display: flex; flex-direction: column; }

Es bleibt uns nur noch, Änderungen in der Hauptkomponente App vorzunehmen. Wir öffnen App.jsx und importieren darin die Komponente ProductsList:

import { ProductsList } from './parts/products/ProductsList'

Dann fügen wir für unsere vorerst einzige Route, die die Root-Route ist, die Eigenschaft children hinzu:

const router = createBrowserRouter([ { path: '/', element: <Root />, children: [] }, ])

Und schreiben wir als Wert dieser Eigenschaft die erste Kind-Route. Als Pfad setzen wir 'products'. Nun wird unter dieser Adresse unsere Produktliste ProductsList angezeigt:

children: [ { path: '/products', element: <ProductsList />, }, ],

Starten wir unsere Anwendung und vergewissern uns, dass wir nichts kaputt gemacht haben. Im Root '/' sehen wir nur die Überschrift. Und das Formular sowie die Produktliste sind unter der Adresse '/products' versteckt.

Öffnen Sie Ihre Studenten-Anwendung. Ersetzen Sie in der Datei root.jsx die Komponenten StudentsList und NewStudentForm durch Outlet.

Lassen Sie nun das Formular zum Hinzufügen eines Studenten in Ihrer StudentsList angezeigt werden.

Nehmen Sie Änderungen in Ihrer Hauptkomponente App vor. Fügen Sie zur Root-Route eine Kind-Route mit dem Pfad '/students' hinzu, unter der Ihre StudentsList angezeigt wird. Starten Sie die Anwendung und vergewissern Sie sich, dass bei Ihnen alles funktioniert.

bydeenesfrptru