⊗jsnxPmRtNFP 23 of 57 menu

Σφάλμα Μη Έγκυρης Παραμέτρου στο NextJS

Σε προηγούμενα μαθήματα, επιστρέφαμε 404 σφάλμα στην περίπτωση που η διαδρομή για τη συγκεκριμένη URL δεν βρισκόταν. Ωστόσο, στην περίπτωση μιας δυναμικής διαδρομής, μπορεί να προκύψει μια κατάσταση όπου η διαδρομή υπάρχει, αλλά η τιμή της παραμέτρου είναι λανθασμένη.

Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε μια διαδρομή της ακόλουθης μορφής: /user/:id.

Ας υποθέσουμε επίσης ότι έχουμε ένα αντικείμενο με χρήστες:

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

Ας πούμε ότι θέλουμε να εμφανίζουμε τον χρήστη βάσει του id του:

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

Προφανώς, το id στη URL δεν μπορεί να είναι οποιοδήποτε, αλλά μόνο ένα από τα κλειδιά του αντικειμένου μας. Η προσπάθεια πρόσβασης σε μη υπάρχουσα διεύθυνση /user/6 θα πρέπει να οδηγεί στο να εκδίδεται σφάλμα. Ας διορθώσουμε τον κώδικα του στοιχείου μας και να εμφανίσουμε ένα κείμενο σφάλματος:

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

Αυτό, ωστόσο, δεν είναι αρκετό. Εξάλλου, σε αυτήν την περίπτωση προσπαθούμε να αποκτήσουμε πρόσβαση σε μια μη υπάρχουσα σελίδα, πράγμα που σημαίνει ότι πρέπει να επιστρέψουμε την κατάσταση HTTP 404. Αυτό γίνεται χρησιμοποιώντας μια ειδική λειτουργία notFound, ενσωματωμένη στο NextJS.

Ας εισάγουμε αυτή τη λειτουργία:

import { notFound } from 'next/navigation';

Και τώρα θα την καλούμε στην περίπτωση που η τιμή της παραμέτρου είναι εσφαλμένη:

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

Ο πλήρης κώδικας του στοιχείου μας θα μοιάζει ως εξής:

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

Λύστε το περιγραφόμενο πρόβλημα στα στοιχεία σας.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη