J'ai appris React et Flux au cours des derniers mois, et une chose que je n'ai pas encore traitée est l'affichage de messages d'erreur aux utilisateurs. Plus précisément, les messages d'erreur qui se produisent à la suite d'une requête http ajax dans une méthode de création d'action de flux.Comment coordonner les messages d'erreur du serveur entre Flux et React?
Un exemple simple est la connexion d'utilisateur - si le signe dans la requête ajax échoue en raison d'un mot de passe incorrect, le serveur répond avec l'échec. À ce moment, dans ma méthode de créateur d'action de flux, ma seule option est d'envoyer une action contenant les informations d'erreur, non?
Je peux envoyer les informations d'erreur et conserver cette erreur dans un magasin. Je ne suis pas sûr que la meilleure façon de lier certaines erreurs à certains composants est, cependant. Supposons que mon arbre de composants de réaction affiche plusieurs composants sensibles aux erreurs, mais une erreur se produit lors de la tentative d'authentification de l'utilisateur côté serveur et doit être affichée sous cette forme de connexion.
Existe-t-il un bon modèle ou convention pour stocker les erreurs et savoir pour quel composant ils sont? Existe-t-il une manière programmatique de déterminer ceci, au lieu de transmettre un identifiant à chaque fonction créatrice d'action qui identifie le composant auquel le créateur d'action l'appelle, etc?
Imaginez une application de type tableur, dans laquelle chaque cellule enregistre via ajax onblur. Si l'enregistrement échoue, l'utilisateur doit voir un message d'erreur _ dans la cellule qui n'a pas pu être sauvegardée. Maintenant vous avez potentiellement un message d'erreur pour chaque cellule. Sauvez-vous toutes ces erreurs dans le magasin lui-même? Comment cartographiez-vous les erreurs dans les cellules? Merci pour tout conseil. – Jonah
En supposant que les cellules ont un certain type d'ID (dont elles ont besoin pour être utilisées en tant que «clé» pour un rendu efficace), gardez le mappage 'errorsByID: {id -> error}' dans le magasin. –
Merci pour la réponse. Le problème que j'ai avec cette solution est que mes clés ne sont pas uniques au monde, mais seulement uniques parmi leurs frères et sœurs (ce qui est autorisé). Dans une "rangée" la clé est juste l'index de la colonne. Cela signifie que chaque cellule de la colonne affichera l'erreur.Je pourrais utiliser "rowId + colIndex" pour le "id" dans 'errorsById', mais même _that_ casse, par exemple, si je voulais rendre deux copies de la même grille sur la page. Donc "identité" devient ici un problème non trivial. Est-ce que passer un rappel à la fonction ajax pour onError qui définit directement l'état du composant est une pratique terrible? – Jonah