⊗jsnxPmRtNFP 23 of 57 menu

NextJS'te Geçersiz Parametre Hatası

Önceki derslerde, belirli bir URL için rota bulunamadığında 404 hatasını vermiştik. Ancak, dinamik bir rotada, rotanın var olduğu ancak parametre değerinin yanlış olduğu bir durum olabilir.

Bir örnek üzerinden inceleyelim. Aşağıdaki gibi bir rotamız olduğunu varsayalım: /user/:id.

Ayrıca şu kullanıcı nesnemizin olduğunu varsayalım:

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

Kullanıcıyı id'sine göre göstermek istediğimizi varsayalım:

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

Açıktır ki, URL'deki id herhangi biri olamaz, sadece nesnemizin anahtarlarından biri olmalıdır. Var olmayan bir adrese /user/6 erişme girişimi, bir hatanın verilmesiyle sonuçlanmalıdır. Bileşenimizin kodunu düzelterek hata metnini gösterelim:

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

Ancak, bu yeterli değildir. Çünkü bu durumda, var olmayan bir sayfaya erişiyoruz, dolayısıyla HTTP durumu 404 verilmelidir. Bu, NextJS'e dahil olan özel bir notFound fonksiyonu kullanılarak yapılır.

Bu fonksiyonu içe aktaralım:

import { notFound } from 'next/navigation';

Şimdi, parametre değeri geçersiz olduğunda onu çağıralım:

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

Bileşenimizin tam kodu aşağıdaki gibi olacaktır:

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

Açıklanan sorunu kendi bileşenlerinizde çözün.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet