Aller au contenu principal
Développement

React : concevoir les états d’un formulaire qui ne perd pas la saisie

Organisez saisie, validation, envoi et reprise dans un formulaire React, avec des messages cohérents et des erreurs qui restent compréhensibles.

Par L’équipe LitusPublié le 6 min de lecture
Bureau équipé d’un ordinateur et d’étagères
Carl Heyerdahl carlheyerdahl · CC0

Un formulaire peut être visuellement soigné et devenir frustrant dès que le réseau ralentit. Le bouton semble fonctionner, puis un message d’erreur apparaît et les champs se vident. Dans une interface React, ces problèmes viennent souvent d’états mal définis et de transitions implicites. Pour les éviter, il faut décrire ce que l’utilisateur peut faire pendant la saisie, l’envoi, l’attente et la reprise. Le modèle d’état doit suivre ce parcours plutôt qu’une accumulation de variables ajoutées au fil des bugs.

Décrire les situations observables

Énumérez les situations qui changent réellement l’interface : saisie initiale, données invalides, envoi en cours, succès confirmé, erreur corrigeable et résultat incertain. Pour chacune, notez le message, les champs modifiables et les actions possibles. Un état « terminé » est trop vague s’il mélange réussite et échec. Un état « erreur » doit indiquer si l’utilisateur peut corriger une valeur ou doit simplement réessayer plus tard.

Dans un exemple fictif, un formulaire de demande de démonstration recueille une adresse email et un contexte. Une adresse invalide se corrige sur place ; une indisponibilité du serveur ne doit pas être présentée comme une faute de saisie. Si le serveur a pu recevoir la demande mais que le navigateur n’a pas reçu la réponse, l’interface doit éviter de promettre qu’aucune demande n’a été créée.

Éviter les combinaisons d’états contradictoires

La documentation React sur le choix de la structure d’état recommande notamment d’éviter les informations contradictoires, redondantes et dupliquées. Pour un envoi, plusieurs booléens indépendants peuvent produire une combinaison impossible, comme « en cours » et « réussi » simultanément. Un statut explicite facilite souvent la lecture des transitions et des conditions d’affichage.

Ne stockez pas systématiquement ce qui peut être calculé à partir des valeurs existantes. Si le libellé du bouton dépend uniquement du statut, il peut être dérivé de ce statut. Cela évite d’avoir à synchroniser deux variables après chaque événement. Le modèle doit rester assez simple pour qu’un développeur puisse lister les passages possibles d’un état à l’autre sans parcourir tous les effets du composant.

Dessiner les transitions avant les composants

Une petite carte suffit : saisie vers validation, validation vers envoi, envoi vers succès ou erreur, erreur vers nouvelle tentative. Ajoutez les événements qui déclenchent chaque passage. Vérifiez ce qui se passe si l’utilisateur modifie un champ pendant une requête ou quitte la page. Cette carte met en évidence les décisions manquantes avant que le rendu soit réparti entre plusieurs composants.

Lieu de travail et son aménagement, photographie d’illustration
Lieu de travail et son aménagement, photographie d’illustration.Evelyn-rose · CC0

Conserver les valeurs tant que le succès n’est pas confirmé

Ne videz pas les champs au début de l’envoi. Une erreur réseau ferait perdre le texte alors que rien ne prouve son enregistrement. Après une erreur, conservez les valeurs et placez un message utile près de l’action concernée. Si une donnée particulière doit être ressaisie pour une raison de sécurité, expliquez-le explicitement au lieu de réinitialiser tout le formulaire par commodité technique.

Faites attention aux changements de clé React et aux composants remontés conditionnellement : ils peuvent réinitialiser un état local. Lorsque le formulaire appartient à un parcours en plusieurs étapes, décidez où sa saisie doit vivre et combien de temps elle doit être conservée. La persistance dans le navigateur n’est pas automatiquement nécessaire ; elle doit être choisie selon la nature des données et les attentes de l’utilisateur.

Valider côté interface et côté serveur

La validation dans l’interface aide à corriger rapidement une erreur. Elle ne remplace pas les contrôles du serveur, qui reçoit aussi des requêtes hors du parcours prévu. Définissez un contrat de réponse lisible : erreurs de champs, erreur générale ou confirmation avec référence. L’interface doit pouvoir afficher ces catégories sans deviner le sens d’une chaîne de texte technique.

Pour les champs obligatoires, associez les messages aux champs concernés et annoncez clairement les corrections nécessaires. Une erreur générale placée loin du formulaire peut rester invisible sur téléphone. Les recommandations W3C sur les notifications de formulaire donnent des repères pour rendre ces retours compréhensibles. Testez le parcours au clavier et avec une lecture séquentielle, pas seulement avec la souris.

Gérer les clics répétés sans enfermer l’utilisateur

Pendant l’envoi, évitez les soumissions répétées et indiquez que l’action est en cours. Cette protection d’interface ne suffit toutefois pas à garantir l’unicité côté serveur. Une nouvelle tentative ou plusieurs onglets peuvent produire des requêtes similaires. La règle métier doit décider comment reconnaître la même opération et quel résultat retourner si elle a déjà été traitée.

Prévoyez aussi une sortie lorsqu’une requête n’aboutit pas dans le délai attendu. Un bouton désactivé indéfiniment bloque l’utilisateur sans l’informer. Le message doit décrire ce qui est connu et proposer une reprise adaptée. Si une référence de demande existe déjà, affichez-la plutôt que d’encourager immédiatement une nouvelle création. Le serveur et l’interface doivent partager cette compréhension.

Lieu de travail et son aménagement, photographie d’illustration
Lieu de travail et son aménagement, photographie d’illustration.Technologie- und Gründerzentrum · CC BY-SA 4.0

Tester les réponses qui arrivent dans le mauvais ordre

Dans un formulaire avec recherche ou validation distante, plusieurs requêtes peuvent se croiser. Une réponse ancienne ne doit pas remplacer le résultat associé à la saisie actuelle. Identifiez la requête concernée ou annulez les traitements devenus inutiles lorsque votre architecture le permet. Cette précaution est particulièrement utile pour les champs qui interrogent une adresse, un produit ou une disponibilité au fil de la frappe.

Votre recette doit simuler un réseau lent, un refus serveur, une réponse tardive et une double action. Vérifiez les textes saisis, le statut affiché, le focus et les actions encore possibles. Un test qui vérifie uniquement la présence du bouton initial ne couvre pas les moments où les utilisateurs rencontrent le plus de difficultés. Les transitions sont le cœur du comportement à valider.

Faire du succès une information exploitable

Vérifiez enfin le retour arrière du navigateur et la réouverture du formulaire après un succès. L’utilisateur doit pouvoir comprendre s’il consulte une confirmation passée ou commence une nouvelle demande. Une interface qui affiche un ancien succès avec des champs neufs crée une ambiguïté. Donnez une action explicite pour recommencer lorsque ce comportement est utile au parcours.

Une confirmation doit expliquer ce qui a été accompli et ce qui suit. Elle peut fournir une référence, un délai réaliste ou un moyen de corriger une information. Évitez une disparition brutale du formulaire sans contexte. Vérifiez que le message est accessible et qu’il ne dépend pas uniquement d’une animation ou d’une couleur. Le parcours se termine lorsque l’utilisateur comprend le résultat de son action.

Notre expertise React porte sur ces interfaces et leurs comportements métier. Pour faire améliorer un formulaire, décrivez les incidents observés et les réponses du serveur disponibles. Nous pourrons définir les états, les transitions et une recette qui protège la saisie tout au long du parcours.

Pour approfondir : Next.js : pourquoi un article programmé reste parfois invisible.

Pour approfondir : Artisan à Lorient : un site qui facilite les demandes de devis.

Google

Avis clients

5/5+21 avis Google
Léandre. dpsil y a 4 mois
Avis publié sur Google

Note attribuée sans commentaire.

Visité en avril
SARL PEAN Jil y a 5 mois
Avis publié sur Google

Excellent. Grâce à Litus, ma communication internet est devenue vraiment professionnelle.

Visité en mars
Ornel Afonsoil y a 9 mois
Avis publié sur Google

Excellente expérience avec Arthur et son équipe ! Ils sont professionnels, à l’écoute et ont su créer un site web vivant, clair et efficace. Je recommande vivement pour tout projet web ou SEO.

Visité en novembre 2025
Julie Langlaisil y a un an
Avis publié sur Google

Professionnel à l’écoute qui est très réactif. Fourni un travail rapide et sérieux. Merci.

Visité en septembre 2025
Sylvain Chamouxil y a un an
Avis publié sur Google

Un résultat vraiment top ! Mon site est incroyable, exactement comme je l’imaginais. Arthur et son associé ont été très disponibles, à l’écoute et professionnels tout au long du projet. Je recommande vivement !

Visité en septembre 2025
Sylvie Bouvieril y a un an
Avis publié sur Google

Je recommande vivement Arthur ! Très impliqué, toujours à l’écoute, il fait preuve d’une grande créativité, d’idées et d’un vrai sens pédagogique.

Visité en juillet 2025
Véronique Guillemotil y a un an
Avis publié sur Google

J’ai connu Aksel de Litus par recommandation et je lui ai demandé de créer mon site internet de soins énergétiques. Un accompagnement attentif et professionnel.

Visité en juin 2025
Julien Hamonil y a un an
Avis publié sur Google

Je recommande vivement l’agence Litus pour la création de sites. Leur équipe est professionnelle, réactive et à l’écoute de mes besoins.

Visité en février 2025
Alexandre Fletcheril y a un an
Avis publié sur Google

Litus m’a accompagné avec efficacité et professionnalisme dans la mise en place d’un blog pour mon agence immobilière. Son équipe est très disponible et réactive. Entièrement satisfait, je recommande sans hésitation cette agence web.

Visité en mai 2025
Camille Bennadjiil y a un an
Avis publié sur Google

Note attribuée sans commentaire.

Visité en mars 2025
Amelie Van-Landschootil y a un an
Avis publié sur Google

Note attribuée sans commentaire.

Visité en mars 2025
Emma Stj22il y a un an
Avis publié sur Google

Note attribuée sans commentaire.

Visité en mars 2025
Kim Buquenil y a un an
Avis publié sur Google

Note attribuée sans commentaire.

Visité en février 2025
Hishem Belhajil y a un an
Avis publié sur Google

Litus m’a accompagné dès le lancement de mon entreprise et cela a été un vrai plus. Leur équipe est réactive, à l’écoute et m’a aidé à avoir un site professionnel.

Visité en août 2024
Pezzino Matysil y a un an
Avis publié sur Google

Merci à Litus pour la création de notre site e-commerce B2B. L’équipe a été très professionnelle, avec un site bien pensé et un référencement qui porte ses fruits.

Visité en février 2025
Lucas Robertil y a un an
Avis publié sur Google

Arthur et Aksel ont su être très professionnels et m’accompagnent encore aujourd’hui ! Merci pour votre expertise.

Visité en juin 2024
Yanisil y a un an
Avis publié sur Google

Client depuis plus d’un an, super satisfait ! Litus est professionnel, réactif et toujours disponible. Merci pour votre excellent travail.

Visité en janvier 2025
Romain Brantil y a un an
Avis publié sur Google

Collaboration avec l’équipe Litus depuis plus d’un an. Merci pour ce professionnalisme et votre disponibilité. Une équipe fiable sur qui on peut compter pour travailler sérieusement.

Visité en décembre 2024
N Sil y a un an
Avis publié sur Google

Merci à Arthur et à toute l’équipe Litus pour la création de mon site web. Un suivi régulier et un professionnalisme à toute épreuve. Des experts à qui on peut faire confiance les yeux fermés !

Visité en décembre 2024
Marius Le Nédicil y a un an
Avis publié sur Google

Nous tenons à remercier chaleureusement l’équipe de Litus pour la création de notre site web. Leur professionnalisme et leur expertise ont permis de concevoir un site responsive et parfaitement adapté à nos besoins.

Visité en décembre 2024
Pierre-Louis Gaboriauil y a 2 ans
Avis publié sur Google

Création de mon site et suivi régulier de la part de Litus pour la réalisation West Clôtures.

Voir tous nos avis sur Google