Menu
Coddy logo textTech

Lectura de datos del formulario

Parte de la sección Esenciales de Next.js del Journey de React de Coddy. Lección 31 de 47.

Tu action recibe un argumento: un objeto FormData. Es un objeto integrado del navegador y solo necesitas un método de él:

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

La cadena que pasas a get() no es el id de la entrada ni su etiqueta. Es el atributo name:

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

Una entrada sin name es invisible para el formulario. Se muestra, puedes escribir en ella y su valor simplemente nunca llega: formData.get() devuelve null. Este es el error más común en un primer formulario con una acción del servidor, y falla silenciosamente.

get() siempre devuelve una cadena de texto (o null), por lo que un campo numérico necesita ser convertido:

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

Desafío

Fácil

El formulario de notas está conectado, pero no se guarda nada útil: los input no tienen name y la action guarda dos cadenas vacías.

  1. En app/page.jsx, añade name="text" al primer input y name="author" al segundo.
  2. En app/actions.js, lee ambos campos de formData en lugar de usar las cadenas vacías.

Mantén los id como están y mantén la llamada a saveNote(text, author): solo cambian los dos valores sobre ella.

Pruébalo tú mismo

import './globals.css';

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

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

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Esenciales de Next.js