我想在React的JSX文件中使用setState函数中的变量。
我将如何重组此代码:
var name = e.target.name;
if(name == "title"){
this.setState({ title: e.target.value});
}
else if(name == "date"){
this.setState({ date: e.target.value});
}
else if(name == "amount"){
this.setState({ amount: e.target.value});
}
这样的事情(所以我不重复自己)?
var name = e.target.name;
this.setState({ name: e.target.value});
以上语法只设置" name"的状态。而不是"名称的价值"变量
答案 0 :(得分:11)
易:
var newState = {};
newState[e.target.name] = e.target.value;
this.setState(newState);
答案 1 :(得分:3)
var update = {};
update[e.target.name] = e.target.value;
this.setState(update);
如果您使用的是支持计算属性名称的ES6转发器(如Babel),您可以这样做:
this.setState({[e.target.name]: e.target.value});