0
votes

Comment se statisser avec nom de manière dynamique?

J'essaie de valider chaque champ de saisie. En supposant que j'ai 5 champs de saisie, comment définir l'état "Erreur" pour chaque champ de saisie. Par exemple, cela.SeState ({error ["roleshortname ']: true}), cela ne fonctionnera pas et en entrée, invalide = {this.state.error [" roleshortName "]}.

handleAddConfirm() {

        if (!this.state.roleShortName) {
            this.setState({ error: true })
            return
        }
        else if (!this.state.roleName) {
            this.setState({error: true})
            return
        }


3 commentaires

this.setstate ({error ['roleshortname']: true}) Ce code ne fonctionne-t-il pas pour vous?


Non, ça ne marche pas. Ça dit ':' attendu ou je le fais mal? :(


Est-ce que cela répond à votre question? variable comme nom de propriété dans un objet javascript littéral? < / a>


3 Réponses :


1
votes

this.setstate ({error ['roleshortName']: true}) ne fonctionnera pas. Si vous souhaitez que la clé soit dynamique, voici comment il devrait ressembler à:

this.setstate ({[[erreur ["roleshortName ']]]: true}) Remarquez le [] entourant le nom de la clé.

edit : Je pense que vous recherchez un dictionnaire pour contenir une erreur pour chaque entrée: < / p> xxx

dans votre constructeur, vous devez avoir xxx


2 commentaires

Je suis désolé je suis nouveau à ce sujet, j'obtiens que l'erreur est indéfinie ici, où et comment puis-je la définir?


Je ne pense pas ce que vous recherchez est des noms de clés dynamiques. Je pense que vous voulez qu'un dictionnaire conserve vos erreurs pour chaque entrée. Consultez-moi une réponse mise à jour.



0
votes

Voici quelque chose de général fourni votre champ de saisie a un attribut de noms.

Vous prenez le nom de préférence BLUR Event et définissez la valeur de l'erreur sur elle. xxx

dans votre cas, dans l'erreur Objet Il suffit de définir la propriété Nom et de la valeur comme celle-ci xxx


0 commentaires

0
votes

Initialise un objet dans le constructeur qui déterrera l'état d'erreur de chaque champ de saisie.

handleAddConfirm(e) {
   let indexOfInvalidState Object.values(this.state.errorFields).indexOf(true);
   if (indexOfInvalidState > -1) {
      return false;
   }
}


0 commentaires