⊗jsrtPmRtULD 31 of 47 menu

Gebruik van gegevens verkregen door de loader in React Router

In de vorige les hebben we gegevens uit de opslag verkregen met behulp van loader. Om deze gegevens te kunnen gebruiken, gebruiken we de hook useLoaderData. Laten we het bestand root.jsx openen en de hook toevoegen aan de import:

import { Outlet, Link, useLoaderData } from 'react-router-dom';

In de functie Root zullen we nu de gegevens in de constante products ontvangen en ermee werken. Als we producten hebben, wordt de lijst weergegeven, zo niet, dan geven we in de paragraaf 'no products here ...' weer. In de tag nav gebruiken we nu een standaard lus om de verkregen producten weer te geven. Elk element wordt verpakt in de component Link en elk adres zal een eigen adres hebben (hierover zullen we later praten). Dienovereenkomstig, als een product geen naam heeft, wordt 'Unnamed' weergegeven standaard. Dus, rekening houdend met het bovenstaande, zal onze code voor de functie Root nu als volgt zijn:

function Root() { const { products } = useLoaderData(); return ( <div id="main"> {products.length ? ( <nav> {products.map((product) => ( <Link key={product.id} to={`products/${product.id}`}> {product.name ? product.name : <i>Unnamed</i>} </Link> ))} </nav> ) : ( <p><i>no products here ...</i></p> )} <div id="product"> <Outlet /> </div> </div> ); }

Als we de applicatie nu herstarten en naar de startpagina gaan, zullen we alleen 'no products here ...' zien, omdat er nog geen producten in de opslag zijn geplaatst.

Neem de applicatie die je hebt gemaakt in de opdrachten bij eerdere lessen. Gebruikmakend van de lesmaterialen, voeg de weergave toe van de van de loader verkregen gegevens met studenten, zoals beschreven in de les.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren