Есть 2 инпута, в которые я ввожу числа, при onChange должна выводится сумма, по дефолту все значения = 0. проблема в следующем: если ввожу "1" в первое поле, то ничего не происходит, если ввожу еще одну единицу, то в результате сложения имею 1, вместо 11. т.е. операция сложения происходит с прошлым значением, если во второе поле ввести 2, то результат будет 11 вместо 13 и т.д. В чем проблема?
сделал вывод значений, которые вводятся в инпуты, тут всё ок. а суммируются значения из прошлого шага. В консоль выводятся тоже старые значения.
var Calc = React.createClass({
getInitialState: function() {
return {
a: 0,
b: 0,
result: 0
};
},
setValueA: function(event) {
var val = event.target.value;
this.setState({
a: val
});
console.log("a", this.state.a, this.state.b);
this.doCalc();
},
setValueB: function(event) {
var val = event.target.value;
this.setState({
b: val
});
console.log("b", this.state.a, this.state.b);
this.doCalc();
},
doCalc: function() {
var res = parseInt(this.state.a) + parseInt(this.state.b)
this.setState({
result: res
})
},
render: function() {
return (
<div>
<input type="text" className="search-field" onChange={this.setValueA} />
<input type="text" className="search-field" onChange={this.setValueB} />
<div>
{this.state.a}
<br/>
{this.state.b}
<br/>
=
{this.state.result}
</div>
</div>
);
}
});
ReactDOM.render(
<div>
<Calc />
</div>,
document.getElementById('content')
);