⊗jsnxPmRtNFP 23 of 57 menu

Kehtetu parameetri viga NextJS-is

Eelmistes õppetundides andsime 404 vea juhul, kui URL-i vastavat ruuti ei leitud. Siiski, dünaamilise ruudi puhul võib esineda olukord, kus ruut on olemas, kuid parameetri väärtus on vale.

Vaatame seda näite varal. Olgul meil järgmise kujuga marsruut: /user/:id.

Olgul meil samuti kasutajate objekt:

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

Oletame, et tahame näidata kasutajat tema id järgi:

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

On ilmne, et URL-is olev id ei saa olla suvaline, vaid peab olema üks meie objekti võtmetest. Katse avada olematut aadressi /user/6 peaks viima vea kuvamiseni. Parandame oma komponendi koodi ja kuvame veateksti:

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

See siiski ei piisa. Sellisel juhul me ju pöördume olematu lehe poole, seega peaksime andma HTTP staatuse 404. Seda tehakse spetsiaalse funktsiooniga notFound, mis on sisseehitatud NextJS-i.

Impordime selle funktsiooni:

import { notFound } from 'next/navigation';

Ja nüüd kutsume seda välja juhul, kui parameetri väärtus on vigane:

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

Meie komponendi täielik kood on järgmine:

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(); } }

Lahendage kirjeldatud probleem oma komponentides.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu