Menu
CoddyTech

Membaca Data Formulir

Termasuk bagian Dasar-Dasar Next.js dalam perjalanan React di Coddy. Pelajaran 31 dari 47.

Aksimu menerima satu argumen: object FormData. Ini adalah fitur bawaan browser, dan kamu hanya memerlukan satu method darinya:

export async function addNote(formData) {
    const text = formData.get('text');
    const author = formData.get('author');
    saveNote(text, author);
}

String yang kamu berikan ke get() bukan id input dan bukan labelnya. String tersebut adalah atribut name:

<input name="author" />      →  formData.get('author')

Input tanpa name tidak terlihat oleh form. Input itu ditampilkan, kamu bisa mengetik di dalamnya, tetapi nilainya tidak pernah sampai: formData.get() mengembalikan null. Ini bug yang paling sering terjadi pada form server-action pertama, dan kegagalannya tidak terlihat.

get() selalu mengembalikan string (atau null), jadi nilai dari kolom angka perlu dikonversi:

const quantity = Number(formData.get('quantity'));
challenge icon

Tantangan

Mudah

Form catatan sudah terhubung, tetapi tidak ada yang berguna tersimpan: input tidak memiliki name, dan action menyimpan dua string kosong.

  1. Di app/page.jsx, tambahkan name="text" ke input pertama dan name="author" ke input kedua.
  2. Di app/actions.js, baca kedua field dari formData, bukan menggunakan string kosong.

Biarkan id seperti semula, dan pertahankan pemanggilan saveNote(text, author): hanya dua nilai di atasnya yang berubah.

Coba sendiri

import './globals.css';

export const metadata = {
    title: 'My App',
};

export default function RootLayout({ children }) {
    return (
        <html lang="en">
            <body>
                {children}
            </body>
        </html>
    );
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar Next.js