Crea un formulario shadcn/ui con React Hook Form y Zod, guárdalo con una server action y muestra los resultados en una tabla de datos shadcn con ordenación, búsqueda y paginación. Demos en vivo y código para copiar.
Un formulario shadcn/ui combina los componentes Field con el Controller de React Hook Form y un esquema de Zod pasado mediante zodResolver. Una tabla de datos shadcn combina los componentes Table con TanStack Table para ordenar, buscar y paginar. Abajo, un formulario de reservas añade filas en vivo a una tabla de reservas, con el código de ambos.
Paquetes
Envía el formulario con un error para ver los mensajes, luego reserva una mesa y mira cómo aparece en la lista de abajo. La vista previa usa las copias de las piezas de shadcn de nuestro sitio y un estado simple para la tabla; el código es la versión completa con shadcn, React Hook Form, Zod y TanStack.
La guía actual de formularios de shadcn/ui construye los formularios con Field, FieldLabel y FieldError junto con el Controller de React Hook Form. Los proyectos antiguos usan los envoltorios Form y FormField; ambos se basan en React Hook Form, así que los formularios existentes siguen funcionando.
No. Los componentes Table de shadcn son solo elementos de tabla con estilos. Añade TanStack Table cuando necesites ordenación, filtrado, paginación o selección.
Haz que la server action devuelva los errores indexados por nombre de campo y luego ejecuta form.setError(field, { message }) para cada uno. FieldError los muestra como cualquier otro mensaje de validación.
Sí. En Next.js, ejecuta revalidatePath en la server action para que la página que renderiza la tabla obtenga filas nuevas. En una aplicación solo de cliente, añade la fila nueva a tu estado de datos o vuelve a pedir los datos.
Quién hace qué
La parte del formulario necesita React Hook Form, Zod y el resolver; la parte de la tabla necesita TanStack Table. La CLI de shadcn copia las piezas de UI.
Controller conecta cada input. data-invalid en Field estiliza toda la fila, aria-invalid en el input avisa a los lectores de pantalla y FieldError muestra el mensaje de Zod.
Vuelve a ejecutar el mismo esquema en el servidor. Devuelve los errores de cada campo y colócalos de nuevo en el formulario con setError.
Los componentes Table de shadcn son elementos de tabla con estilos; TanStack aporta la ordenación, el filtrado y las páginas. El objeto de funciones y las columnas se definen fuera del componente para que se mantengan estables.
¿Prefieres ver antes más bloques compuestos? Mira los
Dinos tu nombre
Introduce un email válido
Al menos 1
Para grupos de más de 12, contáctanos por teléfono
Usa menos de 300 caracteres
Comensales
Notas
Reservando...
Reservar mesa
Hora
Buscar reservas
Sin resultados.
Página {p} de {n}
Anterior
Siguiente
Empieza gratis · Sin tarjeta de crédito