Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 我们将e.target.name写入状态定义语句的目的是什么?_Javascript_Reactjs - Fatal编程技术网

Javascript 我们将e.target.name写入状态定义语句的目的是什么?

Javascript 我们将e.target.name写入状态定义语句的目的是什么?,javascript,reactjs,Javascript,Reactjs,我不清楚为什么我们要在react中把e.target.name写入状态定义语句。谁能解释?提前谢谢 checkboxChange(e) { let state = { ...this.state, [e.target.name]: !this.state[e.target.name] }; ... 我们为什么写作 [e.target.name]: !this.state[e.target.name] 在状态下如果输入的名称是“电子邮件”或“密码”,则可以轻松设置该状态键,而无需为

我不清楚为什么我们要在react中把e.target.name写入状态定义语句。谁能解释?提前谢谢

checkboxChange(e) {

let state = {
  ...this.state,
  [e.target.name]: !this.state[e.target.name]
};
...
我们为什么写作

 [e.target.name]: !this.state[e.target.name]
在状态下

如果输入的名称是“电子邮件”或“密码”,则可以轻松设置该状态键,而无需为每个输入定义单独的功能

对于电子邮件和密码,类似于:

<input name="email" onChange={this._handleChange} />
<input name="password" onChange={this._handleChange} />
在您的情况下,您正在设置复选框值,以便应用相同的原则。

如果输入的名称是“电子邮件”或“密码”,您可以轻松设置该状态键,而无需为每个输入定义单独的函数

对于电子邮件和密码,类似于:

<input name="email" onChange={this._handleChange} />
<input name="password" onChange={this._handleChange} />

在您的情况下,您正在设置复选框值,因此同样的原则也适用。

假设在您的状态下,您有如下情况:

state = {
  privacyAccepted: false
}
现在,您可以通过一个简单的复选框来管理该值:

<input
  type="checkbox"
  name="privacyAccepted"
  ...
/>
要做到这一点,您可以使用一个通用的
onChange
事件处理程序,并使用
event.target.name
访问
状态下与输入同名的属性:

<input
  type="checkbox"
  name="privacyAccepted"
  onChange={ this.handleChange }
/>

handleChange = event => {
  this.setState({
    [event.target.name]: event.target.value // ... or what you want here
  })
}

handleChange=事件=>{
这是我的国家({
[event.target.name]:event.target.value//…或此处所需的内容
})
}

这种访问对象属性以设置值的
[…]
语法称为
计算属性
,它是由ES6提供的。

假设在您的状态下,您有如下内容:

state = {
  privacyAccepted: false
}
现在,您可以通过一个简单的复选框来管理该值:

<input
  type="checkbox"
  name="privacyAccepted"
  ...
/>
要做到这一点,您可以使用一个通用的
onChange
事件处理程序,并使用
event.target.name
访问
状态下与输入同名的属性:

<input
  type="checkbox"
  name="privacyAccepted"
  onChange={ this.handleChange }
/>

handleChange = event => {
  this.setState({
    [event.target.name]: event.target.value // ... or what you want here
  })
}

handleChange=事件=>{
这是我的国家({
[event.target.name]:event.target.value//…或此处所需的内容
})
}

此访问对象属性以设置值的
[…]
语法称为
计算属性
,由ES6提供。

将状态的属性设置为复选框的名称。e、 target.name是组件/复选框的名称(您提供的名称)。此代码假定状态对象中的属性名称映射到表单字段中的输入名称。它用于将状态的属性设置为复选框的名称。e、 target.name是组件/复选框的名称(您提供的名称)。此代码假定状态对象中的属性名称映射到表单字段中的输入名称。