我的React代码中有一个handleChange函数,我只是想知道语法。
handleChange: function(event){
var newState = {};
newState[event.target.id] = event.target.value;
this.setState(newState);
},
我的问题是,如果var newState
是一个空对象,并且event.target.id
看起来像是被放入空对象旁边的数组([ ]
)中,那么将对象放在数组旁边时会发生什么?我是否正确地阅读了这个?
答案 0 :(得分:2)
someobject[...]
语法为property accessor syntax - 它等同于使用someobject.someproperty
,除了要访问的属性的名称是方括号内表达式的值。
例如,如果特定通话的event.target.id
值为'name'
,那么您的handleChange()
方法将相当于this.setState({name: event.target.value})
。
答案 1 :(得分:2)
我是否正确地阅读了这个?
没有。这是对象的标准bracket notation访问权限。
如果event.target.id
是" a",那么该对象将如下所示:{a: event.target.value}
。
答案 2 :(得分:1)
所以在上面的代码中
newState
是一个空对象,newState[event.target.id]
是访问obejct参数的方法,所以如果我们这样做
handleChange: function(event){
var newState = {};
newState[event.target.id] = event.target.value;
this.setState(newState);
},
我们将值event.target.value
分配给对象属性event.target.id
(如果它尚不存在)。因此,假设event.target.id
为"name"
且event.target.value
为"Mike"
。 newState将成为
newState = {
name: "Mike"
}