Créez un formulaire shadcn/ui avec React Hook Form et Zod, enregistrez-le avec une server action, et affichez les résultats dans une data table shadcn avec tri, recherche et pagination. Démos en direct et code à copier.
Un formulaire shadcn/ui associe les composants Field au Controller de React Hook Form et à un schéma Zod passé par zodResolver. Une data table shadcn associe les composants Table à TanStack Table pour le tri, la recherche et la pagination. Ci-dessous, un formulaire de réservation ajoute des lignes en direct à un tableau de réservations, avec le code des deux.
Packages
Envoyez le formulaire avec une erreur pour voir les messages, puis réservez une table et regardez-la apparaître dans la liste en dessous. L'aperçu utilise les copies des composants shadcn de notre site et un simple state pour le tableau ; le code est la version complète avec shadcn, React Hook Form, Zod et TanStack.
Le guide actuel des formulaires shadcn/ui construit les formulaires avec Field, FieldLabel et FieldError et le Controller de React Hook Form. Les projets plus anciens utilisent les wrappers Form et FormField ; les deux reposent sur React Hook Form, donc les formulaires existants continuent de fonctionner.
Non. Les composants Table de shadcn ne sont que des éléments de tableau stylisés. Ajoutez TanStack Table quand vous avez besoin de tri, de filtrage, de pagination ou de sélection.
Faites renvoyer par la server action des erreurs indexées par nom de champ, puis appelez form.setError(field, { message }) pour chacune. FieldError les affiche comme n'importe quel autre message de validation.
Oui. Dans Next.js, appelez revalidatePath dans la server action pour que la page qui affiche le tableau récupère des lignes à jour. Dans une application uniquement côté client, ajoutez la nouvelle ligne à votre state de données ou relancez la requête.
Qui fait quoi
Le côté formulaire a besoin de React Hook Form, de Zod et du resolver ; le côté tableau a besoin de TanStack Table. La CLI shadcn copie les composants d'interface.
Controller connecte chaque input. data-invalid sur Field stylise toute la ligne, aria-invalid sur l'input informe les lecteurs d'écran, et FieldError affiche le message Zod.
Exécutez à nouveau le même schéma côté serveur. Renvoyez les erreurs par champ et replacez-les sur le formulaire avec setError.
Les composants Table de shadcn sont des éléments de tableau stylisés ; TanStack fournit le tri, le filtrage et la pagination. L'objet features et les colonnes sont définis hors du composant pour rester stables.
Vous voulez d'abord des blocs plus complets ? Consultez les
Indiquez votre nom
Saisissez une adresse e-mail valide
Au moins 1
Appelez-nous pour les groupes de plus de 12
Restez sous les 300 caractères
Convives
Remarques
Réservation...
Réserver une table
Heure
Rechercher des réservations
Aucun résultat.
Page {p} sur {n}
Précédent
Suivant
Commencer gratuitement · Sans carte bancaire