⊗jsnxPmRtNFP 23 of 57 menu

Gabim i parametrit të pavlefshëm në NextJS

Në mësimet e mëparshme ne kthyem 404 gabim në rastin kur rruga për këtë URL nuk u gjet. Megjithatë, në rastin e një rruge dinamike mund të ketë një situatë ku rruga ekziston, por vlera e parametrit është e gabuar.

Le ta shohim me një shembull. Le të themi se kemi një rrugë të formës së mëposhtme: /user/:id.

Le të themi gjithashtu se kemi një objekt me përdorues:

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

Le të themi se duam të shfaqim përdoruesin sipas ID-së së tij:

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

Është e qartë se ID-ja në URL mund të jetë jo çfarëdo, por vetëm një nga çelësat e objektit tonë. Përpjekja për të hyrë në një adresë që nuk ekziston /user/6 duhet të çojë në faktin që do të kthehet një gabim. Le të rregullojmë kodin e komponentit tonë dhe të kthejmë tekstin me gabim:

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

Kjo, megjithatë, nuk mjafton. Në fund të fundit, në këtë rast ne jemi duke u drejtuar në një faqe që nuk ekziston, prandaj duhet të kthejmë statusin HTTP 404. Kjo bëhet duke përdorur funksionin e veçantë notFound, të integruar në NextJS.

Le ta importojmë këtë funksion:

import { notFound } from 'next/navigation';

Dhe tani do ta thirrim atë në rastin kur vlera e parametrit është e pavlefshme:

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

Kodi i plotë i komponentit tonë do të duket si më poshtë:

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

Zgjidheni problemin e përshkruar në komponentët tuaj.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo