حل مشكلة searchParams في Next.js 15

x32x01
  • بواسطة x32x01 ||

😵‍💻 مشكلة searchParams في Next.js 15 وحلها​

لو اشتغلت قبل كده على Next.js 14 فغالبًا هتفهم إحساسي لما الكود اللي كان شغال تمام بدأ ينهار بعد التحديث لـ Next.js 15 😅

كنت بشتغل على مشروع بـ TypeScript، ومهمتي بسيطة جدًا - أبعت الـ searchParams لصفحة المنتجات.
كل حاجة كانت ماشية زي الفل… لحد ما التحديث الجديد قلب الموازين! 🔥

📛 الكود القديم اللي كان شغال​

الكود ده كان تمام على Next.js 14 👇
JavaScript:
async function ProductsPage({
searchParams,
}: {
searchParams: { layout?: string; search?: string };
}) {
const layout = searchParams.layout || 'grid';
const search = searchParams.search || '';

return (
<> <ProductsContainer layout={layout} search={search} />
</>
);
}
لكن فجأة في الإصدار الجديد 15 ظهر Error والقيم كلها رجعت undefined! 🤯

🔍 فين المشكلة بالضبط؟​

بعد شوية بحث وتجارب، اكتشفت إن السبب إن Next.js 15 غيّر طريقة التعامل مع searchParams.
دلوقتي بقيت Promise بدل Object، يعني لازم نستخدم await علشان نوصل للقيم.

✅ الحل النهائي - الكود الجديد​

الحل بسيط، بس مهم جدًا 👇
JavaScript:
async function ProductsPage({
searchParams,
}: {
searchParams: Promise<{
layout?: string | undefined;
search?: string | undefined;
}>;
}) {
const layout = (await searchParams).layout || 'grid';
const search = (await searchParams).search || '';

return (
<> <ProductsContainer layout={layout} search={search} />
</>
);
}

💡 ملحوظة مهمة:
الفرق الأساسي إننا استخدمنا await searchParams عشان نفك الـ Promise ونتعامل مع القيم الحقيقية.

📚 الدرس المستفاد​

اللي حصل خلاني أتعلم حاجة مهمة جدًا 👇
“Docs مش مجرد كود.. ده كنز بيفهمك ليه الحاجة اتغيرت وبيوفر عليك وقت ومجهود كبير.”

تابع تحديثات الفريمورك أول بأول، لأن التغييرات الصغيرة دي ممكن تعمل فرق ضخم في الكود بتاعك. 🔄
 
التعديل الأخير:
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
599
x32x01
x32x01
x32x01
الردود
0
المشاهدات
448
x32x01
x32x01
x32x01
الردود
0
المشاهدات
536
x32x01
x32x01
x32x01
الردود
0
المشاهدات
529
x32x01
x32x01
x32x01
الردود
0
المشاهدات
171
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
2,300
المشاركات
2,511
أعضاء أكتب كود
554
أخر عضو
عبدالله
عودة
أعلى