⊗jsnxPmRtNFP 23 of 57 menu

Ongeldige Parameterfout in NextJS

In vorige lesse het ons 'n 404 fout teruggestuur in die geval waar 'n roete vir die gegewe URL nie gevind is nie. By dinamiese roetes kan daar egter 'n situasie wees waar die roete wel bestaan, maar die parameterwaarde verkeerd is.

Kom ons kyk na 'n voorbeeld. Gestel ons het 'n roete van die volgende vorm: /user/:id.

Gestel ons het ook 'n objek met gebruikers:

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

Gestel ons wil die gebruiker volgens sy ID wys:

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

Dit is duidelik dat die ID in die URL nie enige iets kan wees nie, maar slegs een van die sleutels in ons objek moet wees. 'n Poging om na 'n nie-bestaande adres te gaan soos /user/6 moet daartoe lei dat 'n fout teruggestuur word. Kom ons reg ons komponent se kode op en stuur 'n foutboodskap terug:

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

Dit is egter nie genoeg nie. In hierdie geval probeer ons tog om 'n nie-bestaande bladsy te laai, en daarom moet ons die HTTP-status 404 terugstuur. Dit word gedoen met behulp van die spesiale funksie notFound, ingebou in NextJS.

Kom ons voer hierdie funksie in:

import { notFound } from 'next/navigation';

En nou sal ons dit aanroep in die geval waar die parameterwaarde ongeldig is:

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

Die volledige kode van ons komponent sal soos volg lyk:

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 die beskryfde probleem op in jou komponente.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp