Comment puis-je setState pour objet imbriqué?
Pour un plugin que j'utilise, je dois avoir un état qui ressemble à ceci:
getInitialState() {
return {
invalid: true,
access: {
access_code: '',
zipcode: '',
password: '',
confirm: '',
hospital_id: '',
},
}
},
Comment pourrais-je définir l'état de hospital_id sans paramètre le reste de l'accès?
Cela semble tout supprimer mais hospital_id:
this.setState({access: {hospital_id: 1}})
- J'espère Réagir sort avec une meilleure façon de faire cela, comme
updateState()
, qui ferait que la mettre à jour les clés de passé au lieu de souffler loin de ce qui est déjà là. Je trouve l'ensemble de ces solutions de contournement dangereux parce qu'il "échoue" en silence, si quelqu'un oublie de fusionner la nouvelle de l'état avec l'état existant. - comment est-ce un tableau imbriqué?
- Il ne l'est pas, c'est un objet imbriqué. Son vocabulaire n'est pas mon point fort.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser l'Objet.d'attribuer ou de l'objet de la propagation de la proposition de créer des copies d'objets avec des propriétés mises à jour.
Ou pour la version la plus courte et atomique de mise à jour:
Et une option de plus est les mises à jour de l'addon:
Je voudrais utiliser la première.
JS:
Ma façon préférée de faire ça maintenant, c'est aussi simple que:
Légèrement plus simple que l'actuelle accepté de répondre.
MODIFIER (basé sur la question de @SILENCIEUX )
Il ressemble à ce qui est en fait un dangereux méthode. Plus de la lecture ici Réagir: Un (très bref) parler de l'immuabilité.
Ressemble à une meilleure façon de le faire serait:
Une autre façon de le faire serait
Utilisation de la la propagation de l'opérateur crée un clone de
this.state.access
.