قراءة بيانات النموذج
جزء من قسم أساسيات Next.js في رحلة React على Coddy — الدرس 31 من 47.
يتلقى الـ action الخاص بك وسيطًا واحدًا: كائن FormData. وهو عنصر مدمج في المتصفح، وتحتاج فقط إلى دالة واحدة منه:
export async function addNote(formData) {
const text = formData.get('text');
const author = formData.get('author');
saveNote(text, author);
}السلسلة النصية التي تقوم بتمريرها إلى get() ليست معرف المدخل id، وليست التسمية التوضيحية الخاصة به (label). بل هي خاصية name:
<input name="author" /> → formData.get('author')إن أي عنصر مدخل لا يحتوي على name يكون غير مرئي للنموذج. يتم عرضه على الشاشة، ويمكنك الكتابة فيه، ولكن قيمته ببساطة لا تصل أبداً: يُرجع formData.get() القيمة null. هذا هو الخطأ الأكثر شيوعاً في أول نموذج لـ server-action، وهو يفشل بهدوء.
تعيد get() دائمًا سلسلة نصية (أو null)، لذلك يحتاج حقل الرقم إلى تحويل:
const quantity = Number(formData.get('quantity'));التحدي
سهلتم توصيل نموذج الـ notes، ولكن لا يتم حفظ أي شيء مفيد: الـ input ليس لديها name، والـ action يحفظ سلسلتين نصيتين فارغتين.
- في
app/page.jsx، أضفname="text"إلى الـinputالأول وname="author"إلى الثاني. - في
app/actions.js، اقرأ كلا الحقلين منformDataبدلاً من استخدام السلاسل النصية الفارغة.
احتفظ بالـ ids كما هي، واحتفظ باستدعاء saveNote(text, author): فقط القيمتان اللتان فوقه هما ما سيتغيران.
جرّب بنفسك
import './globals.css';
export const metadata = {
title: 'My App',
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
{children}
</body>
</html>
);
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات Next.js
4الخادم والعميل (Server & Client)
نوعان من المكوناتقراءة الخطأسطر 'use client'الحفاظ على أجزاء العميل صغيرةخادم داخل عميلملخص: الخادم والعميل2التوجيه والروابط
المجلدات هي مسارات التوجيهالمسارات المتداخلةربط الصفحاتالمسارات الديناميكيةصفحات غير موجودةملخص: التوجيه3التخطيطات والبيانات الوصفية
التخطيط الرئيسيالتنقل المشتركالتخطيطات المتداخلةالبيانات الوصفية للصفحةالبيانات الوصفية الديناميكيةملخص: التخطيطات6إجراءات الخادم (Server Actions)
ما هو إجراء الخادم (Server Action)؟نماذج تعمل وتتفاعلقراءة بيانات النموذجتحديث الصفحةملخص: إجراءات الخادم