Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态设置react状态时为何使用类似数组的语法_Javascript_Reactjs - Fatal编程技术网

Javascript 动态设置react状态时为何使用类似数组的语法

Javascript 动态设置react状态时为何使用类似数组的语法,javascript,reactjs,Javascript,Reactjs,下面是react 对于动态设置状态,我们通常会这样做 handleChange: function (e) { this.setState({[e.target.name]: e.target.value}) } 但如果我们手动输入名称,则不需要数组 handleChange: function (e) { this.setState({name: e.target.value}) } 有人能告诉我们,当动态地获取名称时,为什么要将e.target.name放在类似数组的语法

下面是
react

对于动态设置
状态
,我们通常会这样做

handleChange: function (e) {
    this.setState({[e.target.name]: e.target.value})
}
但如果我们手动输入名称,则不需要数组

handleChange: function (e) {
    this.setState({name: e.target.value})
}

有人能告诉我们,当
动态地
获取
名称时,为什么要将
e.target.name
放在
类似数组的语法中

Javascript将对象的键作为字符串进行计算。因此,[e.target.name]意味着访问名为e.target.name值的键(转换为字符串),而name:被解释为名为“name”的键。

这是ES6语法,它被称为计算键。有关更多详细信息,请参见,但本质上无论
e.target.name
是什么,它都将被设置为对象键

handleChange: function (e) {
    this.setState({[e.target.name]: e.target.value})
}
这与在ES5中执行此操作相同(更详细):


这就是ES6语法,它被称为计算键。有关更多详细信息,请参见,但本质上无论
e.target.name
是什么,它都将被设置为对象键

handleChange: function (e) {
    this.setState({[e.target.name]: e.target.value})
}
这与在ES5中执行此操作相同(更详细):

可能的重复可能的重复