⊗jsnxPmRtNFP 23 of 57 menu

Kesalahan Parameter Tidak Valid di NextJS

Dalam pelajaran sebelumnya, kita memberikan kesalahan 404 dalam kasus ketika rute untuk URL tersebut tidak ditemukan. Namun, dalam kasus rute dinamis, mungkin ada situasi di mana rute ada, tapi nilai parameternya salah.

Mari kita lihat contohnya. Misalkan kita memiliki rute dengan bentuk berikut: /user/:id.

Misalkan kita juga memiliki objek berisi pengguna:

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

Misalkan kita ingin menampilkan pengguna berdasarkan id-nya:

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

Jelas bahwa id dalam URL bisa saja bukan sembarang nilai, melainkan hanya salah satu kunci dari objek kita. Upaya mengakses alamat yang tidak ada /user/6 seharusnya mengakibatkan kesalahan ditampilkan. Mari kita perbaiki kode komponen kita dan tampilkan teks kesalahan:

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

Namun, ini belum cukup. Karena dalam kasus ini kita mengakses halaman yang tidak ada, yang berarti kita harus mengembalikan status HTTP 404. Hal ini dilakukan dengan menggunakan fungsi khusus notFound, yang sudah built-in di NextJS.

Mari impor fungsi tersebut:

import { notFound } from 'next/navigation';

Dan sekarang kita akan memanggilnya dalam kasus ketika nilai parameter tidak valid:

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

Kode lengkap komponen kita akan terlihat seperti berikut:

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

Selesaikan masalah yang dijelaskan dalam komponen Anda.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak