0
votes

Form.Control Type Mot de passe dans React-BootsTrap rend toujours un mot de passe par défaut que je ne peux pas supprimer

Je fais la page de connexion et j'ai réalisé que je ne peux pas définir les valeurs par défaut de l'entrée de mot de passe de type.Control Type !!!

password when rendered thisIsMyDefaultPassword
Login.js:51 password when rendered 
Login.js:51 password when rendered 0346


0 commentaires

3 Réponses :


1
votes

Il existe deux types de composants valorisés (Textfield, Cochez la case, etc.):

  1. contrôlé - le composant dont la valeur est contrôlée par la mise en œuvre du code. Dans ce type de composant, vous devez définir Valeur PROP du composant avec la source de valeur et gérer son Onchange pour obtenir la valeur et la mise à jour de la future source.

    this.setstate ({mot de passe: événement.target.value})} />

  2. non contrôlé - le composant qui a une valeur par défaut et que la valeur peut modifier sans déclenchement / manutention dans le code de composant. Ces composants ont une "valeur par défaut" de la valeur remplie avec la valeur initiale que vous souhaitez attribuer.

    Vous ne pouvez pas utiliser les deux valeur et defaultValue sur le même composant.

    Dans votre cas, vous devez supprimer par défautValue PROP, car vous avez besoin d'un composant contrôlé pour que sa valeur persiste.


4 commentaires

Ceci.state = {Email: ' ', mot de passe:' ', ischarger: false, redirectToreferrer: faux};


Mais quand rendu a toujours un mot de passe par défaut ... = [


J'ai essayé toutes les combinaisons individuellement et les deux ensemble.


Supprimez cette chose onfocus sur le mot de passe et réessayez!



2
votes

Les accessoires de valeur sont trop ici, si vous en débarrassez, vous pouvez modifier l'entrée. De plus, vous fournissez toujours la chaîne "mot de passe" à votre gestionnaire d'Onchange comme valeur. Cela pourrait ne pas être ce que vous voulez faire, mais en utilisant plutôt le mot de passe réel, l'utilisateur est entré.

dans votre méthode de rendu: p>

handleChange = name => event => {
  this.setState({ password: event.target.value });
};


6 commentaires

Hey Man, mon code est exactement le même que celui que vous avez déclaré l'état dans un constructeur. J'ai essayé de faire votre chemin en déclarant que l'état comme une variable dans la classe mais cela n'a pas fonctionné pour moi ..


Ici un conseil: essayez de vous connecter le mot de passe avec console.log. Cela vous aidera à comprendre où est votre problème. J'ajouterais la console.log dans la fonction Handlechange (voir si vous obtenez la valeur correcte là-bas) et dans la fonction de rendu. Surtout, je voudrais juste faire une console.log (this.state) pour voir où des trucs sont enregistrés.


Salut Grenzbotin, j'ai fait un journal de console sur la fonction de rendu, il montre correctement tout ce que j'entraîne sur le terrain, en quelque sorte réagir-bootstrap Jsut qui l'écrase même si j'ai déclaré une valeur par défaut pour être le mot de passe de l'état.


Je vais mettre à jour les journaux que j'ai trouvés dans mon post. grenzbotin


Où écrasez-vous? Pouvez-vous mettre à jour votre code dans le premier message afin de savoir quelles sorties de ligne qui se connectent dans la console? Je n'ai pas vraiment ce que votre problème est le suivant: Ainsi, l'état est mis à jour correctement (vous le voyez dans vos journaux.) Mais que se passe-t-il alors et que devrait-il arriver à la place?


Que faites-vous entre ces journaux de console? Assomption pour la pièce de compensation: il peut être effacé car votre fonction "Onfocus" efface réellement l'état de mot de passe?



1
votes

Vous avez la même valeur pour defaultvalue et , semble que cela n'a pas de sens car si valeur a une valeur, que la valeur sera rendue. Essayez de correspondre par défautValue à une autre valeur ou simplement Supprimer defaultValue . Votre ONCHANGE fonctionne-t-il? Semble comme non. Êtes-vous implémenté votre Handlechange ? Parce que vous utilisez des entrées contrôlées. Essayez ceci: xxx


1 commentaires

mon changement fonctionne, mais je devrais éditer mon code comme ce n'est pas ce que je suis en train d'utiliser .. uhh j'ai essayé toutes les combinaisons par défautValue / valeur / defaultvalue et valeur