Formulaire et data table shadcn, reliés ensemble

Formulaire et data table shadcn

Formulaire et data table shadcn : React Hook Form, Zod, TanStack | We.Inc

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.

Questions fréquentes

Faut-il utiliser le composant Form ou le composant Field ?

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.

Ai-je besoin de TanStack Table pour un tableau shadcn ?

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.

Comment afficher les erreurs serveur sous le bon champ ?

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.

Le tableau peut-il se rafraîchir après l'enregistrement du formulaire ?

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.

Pour aller plus loin

Erreurs courantes

Comment les éléments s'articulent

Qui fait quoi

Le formulaire

Installer les éléments

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.

Formulaire de réservation : Field shadcn + React Hook Form + Zod

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.

Enregistrer avec une server action

Exécutez à nouveau le même schéma côté serveur. Renvoyez les erreurs par champ et replacez-les sur le formulaire avec setError.

La data table

Data table : Table shadcn + TanStack Table

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

exemples shadcn/ui

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

Nom

E-mail

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

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site