Dans le gestionnaire d'événement onChange, je ne fais qu'un appel à setState() sur le userTxt mais il semble qu'il définit également l'état de l'objet de couleur. Ce qui est étrange pour moi, c'est que cela n'arrive qu'à l'objet couleur mais pas à la variable d'âge.Pourquoi SetState dans React met-il à jour d'autres objets dans le gestionnaire?
Je me demandais si quelqu'un pouvait expliquer pourquoi cela se produit? Here is a link to my webpackbin example. As you write in the input, the state is changed on the color object..
J'espérais que quelqu'un pourrait m'expliquer les mécanismes expliquant pourquoi cela se passe. Merci beaucoup d'avance.
import React, { Component } from 'react';
export default class Hello extends Component {
constructor() {
super();
this.handleMe = this.handleMe.bind(this);
this.state = {
age: 21,
colors: {
best: 'blue',
second: 'green'
},
userTxt: ""
}
}
handleMe(e) {
let myAge = this.state.age;
let myColors = this.state.colors;
myAge = myAge + 1;
myColors['best'] = 'mistyrose';
myColors['second'] = 'red';
this.setState({ userTxt: e.target.value });
}
render() {
const { age, colors, userTxt} = this.state;
return (
<div>
<form action="">
<input type="text"onChange={this.handleMe}/>
<div>Age: {age}</div>
<div>Colors - best: {colors.best}</div>
<div>Colors - second: {colors.second}</div>
<div>UserTxt: {userTxt}</div>
</form>
</div>
)
}
}[enter link description here][1]
[1]: https://www.webpackbin.com/bins/-KvFx-s7PpQMxLH0kg7m