EDIT: ceci est un doublon, voir ici
Je ne trouve aucun exemple d'utilisation d'un nom de clé dynamique lors de la définition de l'état. Voici ce que je veux faire:
inputChangeHandler : function (event) {
this.setState( { event.target.id : event.target.value } );
},
où event.target.id est utilisé comme clé d'état à mettre à jour. N'est-ce pas possible dans React?
Réponses:
Grâce à l'indice de @ Cory, j'ai utilisé ceci:
Si vous utilisez ES6 ou le transpilateur Babel pour transformer votre code JSX, vous pouvez également effectuer cela avec des noms de propriété calculés :
la source
computed property names
trad
, c'est ce que je cherchais pour éviter la duplication de code pour l'<Radio />
implémentation.this.setState({ [event.target.id]: event.target.value });
alors comment accéderiez-vous à cet état en utilisantthis.state......
?Lorsque vous devez gérer plusieurs éléments d'entrée contrôlés, vous pouvez ajouter un attribut de nom à chaque élément et laisser la fonction de gestionnaire choisir quoi faire en fonction de la valeur de event.target.name.
Par exemple:
la source
this.state([event.target.name])
?Comment j'ai accompli cela ...
la source
this.forceUpdate();
qui n'aurait pas dû être le cas avec la dernière React. Voyons quel est le problème plus tard !!Je voulais juste ajouter que vous pouvez également utiliser la déstructuration pour refactoriser le code et le rendre plus net.
la source
En boucle avec un
.map
travail comme celui-ci:Notez le paramètre
[]
intype
. J'espère que cela t'aides :)la source
J'avais un problème similaire.
Je voulais définir l'état de stockage de la clé de 2e niveau dans une variable.
par exemple
this.setState({permissions[perm.code]: e.target.checked})
Cependant, ce n'est pas une syntaxe valide.
J'ai utilisé le code suivant pour y parvenir:
la source
Avec ES6 +, vous pouvez simplement faire [
${variable}
]la source
Je cherchais une solution jolie et simple et j'ai trouvé ceci:
J'espère que cela t'aides
la source
Veuillez noter le caractère de citation.
la source
Votre état avec dictionnaire met à jour une clé sans perdre d'autre valeur
La solution est ci-dessous
ici mettre à jour la valeur de la "page" clé avec la valeur 5
la source
Peut utiliser une syntaxe étendue, quelque chose comme ceci:
la source