2 votes

Est-ce que Form est un composant de présentation ou un composant de conteneur

Cet article est celui auquel tout le monde se réfère. Il dit essentiellement que tous les appels API doivent être effectués par un composant Container/Smart, et que les données doivent être transmises au composant Présentationnel/Dumb.

Voici mon cas d'utilisation:

Imaginons qu'il y ait une boîte de dialogue/modale contenant un formulaire (affiché ci-dessous). Maintenant, lorsque le champ Type d'accès change, les options dans le menu déroulant Permissions changent également et les données sont récupérées depuis le serveur.Boîte de dialogue de création d'utilisateur

Mes questions sont les suivantes:

1) Cette boîte de dialogue est-elle un composant container ou un composant de présentation? Autrement dit, ce composant doit-il effectuer un appel API pour créer un nouvel utilisateur ou doit-il être encapsulé dans un composant Container qui effectue un appel API?

2) Si on suppose que cette boîte de dialogue est un composant de présentation, alors, à chaque changement du Type d'accès, comment l'appel API pour récupérer la liste des Permissions serait-il effectué? Les événements sont-ils la seule solution?

3) Si ce formulaire est un composant de présentation, que ferait le onSubmitHandler lorsque l'utilisateur clique sur le bouton de soumission: déclencher simplement un événement vers le composant Container avec les données du formulaire?

1voto

Jezpoz Points 169

1) Je ne peux parler que de mon expérience personnelle, et je dirais que le formulaire est un composant de présentation, mais il devrait être enveloppé dans un conteneur qui gère les appels API.

2) Encore une fois, de mon expérience personnelle, je pense que onChange ne devrait mettre à jour que l'état interne des composants, et avoir un événement "submit" sur onBlur, donc lorsque l'utilisateur modifie les champs, les autorisations seront récupérées.

3) Le gestionnaire onSubmitHandler devrait au moins faire un event.preventDefault(), pour éviter que la page ne se recharge, puis utiliser un rappel qu'il a reçu du conteneur parent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X