NextJS में अमान्य पैरामीटर त्रुटि
पिछले पाठों में, हम
404 त्रुटि तब देते थे,
जब उस URL के लिए रूट
नहीं मिलता था। हालाँकि, डायनामिक रूट के मामले में
ऐसी स्थिति हो सकती है जहाँ रूट मौजूद तो हो,
लेकिन पैरामीटर का मान गलत हो।
आइए एक उदाहरण देखें।
मान लीजिए कि हमारे पास निम्नलिखित प्रकार का रूट है:
/user/:id.
मान लीजिए कि हमारे पास उपयोगकर्ताओं की एक वस्तु भी है:
let users = {
1: 'user1',
2: 'user2',
3: 'user3',
4: 'user4',
5: 'user5',
};
मान लीजिए कि हम उपयोगकर्ता को उसकी आईडी से दिखाना चाहते हैं:
export default function User({ params }) {
return <p>
{ users[params.id] }
</p>;
}
जाहिर है, 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 देना चाहिए।
यह NextJS में बनी एक
विशेष फ़ंक्शन notFound के द्वारा किया जाता है।
आइए इस फ़ंक्शन को इम्पोर्ट करें:
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();
}
}
अपने कंपोनेंट्स में वर्णित समस्या का समाधान करें।