我有两个函数:
handleValue1(event) {
this.setState({number1: parseInt(event.target.value, 10)});
}
handleValue2(event) {
this.setState({number2: parseInt(event.target.value, 10)});
}
...
onChange={this.handleValue1.bind(this)}
onChange={this.handleValue2.bind(this)}
我想把这两个函数组合成1。
handleValue(event, name) {
this.setState({name: parseInt(event.target.value, 10)});
}
...
input onChange={this.handleValue.bind(this, "number1")}
为了动态设置名称,您需要使用括号语法:
var obj = {};
obj[name] = value;
因此,你的方法将变成:
handleValue(event, name) {
var newState = {};
newState[name] = parseInt(event.target.value, 10);
this.setState(newState);
}
否则,您将请求具有名为name
的属性的对象字面值。