`J'espère que vous vous débrouillez bien, j'ai un problème.Je crée une application Web de don et j'utilise React et Redux, de sorte que lorsque l'utilisateur ajoute ses informations sous la forme de numéro de téléphone et de groupe sanguin après en ajoutant et s'il se déplace vers une autre route, le formulaire devient vide et la carte de donateur disparaît.
Y a-t-il une solution pour garder la carte et le formulaire de donateur toujours remplis et désactivés dans le composant même si l'utilisateur modifie l'itinéraire?
toute aide est appréciée
3 Réponses :
Redux aide à y parvenir. Ma suggestion est d'utiliser useEffect () sur le composant et de demander au magasin redux s'il y a une valeur stockée. Si c'est le cas, vous devez remplir les champs / valeurs avec ces valeurs.
Est-ce clair?
Vous pouvez publier votre code, cela vous aidera beaucoup pour vous aider avec plus de détails.
après quelques heures, je viens de résoudre le problème en utilisant localStorage , la persistance des données est la clé
Après quelques heures, je viens de résoudre le problème en utilisant localStorage, la persistance des données est la clé
localstoragen'est pas une bonne approche pour résoudre ce problème. localstorage sert à conserver les données après le rechargement, mais ici, vous souhaitez conserver les données après le changement d'itinéraire. (Notez quereact-dom-routerne recharge pas la page.)le problème est que pendant que vous avez configuré le redux dans votre code, vous utilisez
useReducerpour l'état des entrées utilisateur:const [userInput, setUserInput] = React.useReducer( (state, newState) => ({...state, ...newState}), { bloodType: "", phoneNumber: "", } )
useReducerest un réducteur local pour react, et il n'utilise pasredux code>. votre état d'entrée est donc local et il sera perdu après avoir modifié l'itinéraire. (alors que redux store est global et partagé entre les composants.)Puisque votre composant utilise déjà
redux, vous pouvez à la place ajouter un réducteur pourInputdans redux, puis mappez cela aux accessoires du composant dans la fonctionmapstatetoprops, afin que vous puissiez y accéder avecthis.props.userInput. de cette façon, vous ne perdez pas l'état après les changements de route, car le fournisseur de magasin redux est global.