Warum, wenn ich tue this.setState({count:this.state.count*2})
es funktioniert, aber wenn ich tue: this.setState({count:this.state.count++})
es funktioniert nicht?Wie verwenden Sie den Inkrementoperator in React
Warum und wie es zu beheben?
Voll Code:
var Hello = React.createClass({
getInitialState:function(){
return {count:parseInt(this.props.count)}
},
a:function(){
this.setState({count:this.state.count++})
console.log(this.state)
},
render: function() {
console.log(this.state)
return <div onClick={this.a}>Click to increment the counter<b> {this.state.count} </b></div>;
}
});
ReactDOM.render(
<Hello count="1" />,
document.getElementById('container')
);
Aber dieser Code funktioniert:
a:function(){
this.setState({count:this.state.count*2})
console.log(this.state)
},
JSFiddle: https://jsfiddle.net/69z2wepo/55100/
ja, subtil, aber macht Sinn. Der inkrementelle Operator (++) arbeitet direkt mit dem Zustandswert, also ja, sollte nicht erlaubt sein. Aber nicht offensichtlich. Vielen Dank! – Maniaque