⊗jsrtPmRtGLDP 36 of 47 menu

Abrufen von Loader-Daten über URL-Parameter in React Router

In der letzten Lektion haben wir eine Funktion zum Abrufen der Daten für die Produktseite geschrieben. Lasst uns getProduct in der Datei product.jsx importieren:

import { getProduct } from '../forStorage';

Wir schreiben die Loader-Funktion loader gleich nach dem Import und vor der Funktion Product. Wir übergeben ihr die URL- Parameter:

export async function loader({ params }) { const product = await getProduct(params.productId); return { product }; }

Außerdem importieren wir den Hook useLoaderData, um die vom Loader erhaltenen Daten zu verwenden:

import { useLoaderData } from 'react-router-dom';

Wir wenden useLoaderData an und ersetzen entsprechend die Zeile mit der Erstellung des Objekts product am Anfang der Funktion Product durch folgende:

const { product } = useLoaderData();

Und natürlich passen wir unser Markup etwas an, da wir das alte Objekt product entfernt haben. Wir ersetzen den Inhalt der Absätze:

<p>Name: {product.name}</p> <p>Cost: {product.cost}</p> <p>Amount: {product.amount}</p>

Durch Folgendes:

<p>Name: {product.name ? product.name : <i>unnamed</i>}</p> <p>Cost: {product.cost ? product.cost : <i>unknown</i>}</p> <p>Amount: {product.amount ? product.amount : <i>unknown</i>}</p>

Jetzt müssen wir nur noch main.jsx öffnen und dort den Import von loader hinzufügen, nennen wir ihn productLoader:

import Product, { loader as productLoader, } from './routes/product';

Und ihn als Loader für das Route-Objekt der Produktseite konfigurieren, indem wir ihn in children nach der Eigenschaft element hinzufügen:

children: [ { path: 'products/:productId', element: <Product />, loader: productLoader, }, ],

Das war's, wir haben das Laden der Daten für die Produktseite geschafft! Allerdings gibt es noch nichts zu laden. Starten Sie die Anwendung, fügen Sie Produkte hinzu und klicken Sie sie in der Liste an, um sicherzugehen, dass alles funktioniert.

Nehmen Sie die Anwendung, die Sie in den Aufgaben zu den vorherigen Lektionen erstellt haben. Nutzen Sie die Unterlagen der Lektion, um einen loader zu implementieren, schließen Sie ihn an und verwenden Sie seine Daten für die Seite mit dem Studenten.

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