Tại sao khi tôi đang làm this.setState({count:this.state.count*2})
nó đang hoạt động, nhưng khi tôi đang thực hiện: this.setState({count:this.state.count++})
nó không hoạt động?Cách sử dụng toán tử gia tăng trong React
Tại sao và cách khắc phục?
Full mã:
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')
);
Nhưng mã này đang làm việc:
a:function(){
this.setState({count:this.state.count*2})
console.log(this.state)
},
JSFiddle: https://jsfiddle.net/69z2wepo/55100/
vâng, tinh tế, nhưng có ý nghĩa. Toán tử gia tăng (++) hoạt động trực tiếp với giá trị trạng thái, do đó, vâng, không được phép. Nhưng không rõ ràng. Cảm ơn! – Maniaque