静态和动态键和值的setState之间的区别?

问题描述 投票:1回答:1

当我静态地使用setState用户名的值时,我曾经使用下面的代码在变量名中设置值。

this.setState({ 'userName' : event.target.value })

但是当我以前在相同的键名中设置相同的值但这次是动态地相同时。

在我的HTML属性中,我将名称设置为userName,并在事件中调用onChange。在该event.target.name中,我得到了userName,在event.target.value中,我得到了键入的值,但是在setState期间,以下代码不起作用:

this.setState({ event.target.name : event.target.value })

相反,我曾经使用可以正常工作的[event.targe.name]来设置密钥:

this.setState({ [event.target.name] : event.target.value })

实际上我需要的是,以上两个代码之间有什么区别,以及它如何静态和动态地工作?

reactjs
1个回答
2
投票

以下是语法错误:

this.setState({ event.target.name : event.target.value })

以下表示event.target.name的值将为键名称

this.setState({ [event.target.name] : event.target.value })

换句话说:

  • [{ name: value }表示object.name = value,表示value分配给"name"
  • [{ [name]: value }表示object[name] = value,表示value分配给具有name]值的键。
© www.soinside.com 2019 - 2024. All rights reserved.