⊗jsnxPmRtNFP 23 of 57 menu

Ongeldige parameterfout in NextJS

In eerdere lessen hebben we een 404 fout teruggegeven in het geval dat de route voor een bepaalde URL niet werd gevonden. Echter, bij een dynamische route kan zich een situatie voordoen waarin de route wel bestaat, maar de parameterwaarde onjuist is.

Laten we een voorbeeld bekijken. Stel we hebben een route van het volgende type: /user/:id.

Stel we hebben ook een object met users:

let users = { 1: 'user1', 2: 'user2', 3: 'user3', 4: 'user4', 5: 'user5', };

Stel we willen de user tonen op basis van zijn id:

export default function User({ params }) { return <p> { users[params.id] } </p>; }

Het is duidelijk dat de id in de URL niet willekeurig kan zijn, maar alleen een van de sleutels van ons object. Een poging om naar een niet-bestaand adres te gaan /user/6 moet resulteren in een fout. Laten we de code van onze component corrigeren en een foutmelding tonen:

export default function User({ params }) { if (users[params.id]) { return <p> { users[params.id] } </p>; } else { return <p> user not found </p>; } }

Dit is echter niet voldoende. Immers, in dit geval proberen we een niet-bestaande pagina te bereiken, en moeten we dus een HTTP-status 404 teruggeven. Dit wordt gedaan met behulp van een speciale functie notFound, ingebouwd in NextJS.

Laten we deze functie importeren:

import { notFound } from 'next/navigation';

En laten we deze aanroepen in het geval dat de parameterwaarde ongeldig is:

export default function User({ params }) { if (users[params.id]) { return <p> { users[params.id] } </p>; } else { return notFound(); } }

De volledige code van onze component ziet er als volgt uit:

import { notFound } from 'next/navigation'; let users = { 1: 'user1', 2: 'user2', 3: 'user3', 4: 'user4', 5: 'user5', }; export default function User({ params }) { if (users[params.id]) { return <p> { users[params.id] } </p>; } else { return notFound(); } }

Los het beschreven probleem op in je componenten.

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