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 Réponses :
edit fort>: Je pense que vous recherchez un dictionnaire pour contenir une erreur pour chaque entrée: < / p> dans votre constructeur, vous devez avoir p> this.setstate ({error ['roleshortName']: true}) code> ne fonctionnera pas. Si vous souhaitez que la clé soit dynamique, voici comment il devrait ressembler à:
this.setstate ({[[erreur ["roleshortName ']]]: true}) code> p> P> P> P> P> Remarquez le
[] code> entourant le nom de la clé. P>
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.
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 dans votre cas, dans l'erreur Objet Il suffit de définir la propriété Nom et de la valeur comme celle-ci p> Event CODE> et définissez la valeur de l'erreur sur elle. p>
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; } }
this.setstate ({error ['roleshortname']: true}) code> 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>