Je voulais vérifier ce qui se passe lorsque vous utilisez this.setState plusieurs fois (2 fois pour le plaisir de la discussion). Je pensais que le composant serait rendu deux fois mais apparemment il n'est rendu qu'une seule fois. Une autre attente que j'avais était que peut-être le deuxième appel à setState passera au premier, mais vous l'avez deviné - a bien fonctionné.
Lien vers un JSfiddle
var Hello = React.createClass({
render: function() {
return (
<div>
<div>Hello {this.props.name}</div>
<CheckBox />
</div>
);
}
});
var CheckBox = React.createClass({
getInitialState: function() {
return {
alex: 0
};
},
handleChange: function(event) {
this.setState({
value: event.target.value
});
this.setState({
alex: 5
});
},
render: function() {
alert('render');
return (
<div>
<label htmlFor="alex">Alex</label>
<input type="checkbox" onChange={this.handleChange} name="alex" />
<div>{this.state.alex}</div>
</div>
);
}
});
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);
Comme vous le verrez, une alerte qui dit «rendu» apparaît sur chaque rendu.
Avez-vous une explication pour expliquer pourquoi cela a fonctionné correctement?
this.state.alex
- que se passe-t-il si vous ajoutez un élément qui dépendthis.state.value
également?