以下是react
要动态设置state
,我们通常会
handleChange: function (e) {
this.setState({[e.target.name]: e.target.value})
}
但如果我们手动输入名称,则不需要数组。
handleChange: function (e) {
this.setState({name: e.target.value})
}
当e.target.name
获取array like syntax
时,有人可以告诉我们为什么将dynamically
放在name
中
答案 0 :(得分:2)
该ES6语法,它被称为计算密钥。有关详细信息,请参阅this answer,但基本上无论e.target.name
是什么,都将其设置为对象键。
handleChange: function (e) {
this.setState({[e.target.name]: e.target.value})
}
与在ES5中执行此操作相同(更详细):
handleChange: function (e) {
var state = {};
state[e.target.name] = e.target.value;
this.setState(state);
}
答案 1 :(得分:1)
Javascript将对象的键作为字符串进行评估。因此,[e.target.name]表示访问名称为e.target.name(强制转换为字符串)的键,而name:被解释为名称为' name'