Javascript 我们将e.target.name写入状态定义语句的目的是什么?
我不清楚为什么我们要在react中把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] 在状态下如果输入的名称是“电子邮件”或“密码”,则可以轻松设置该状态键,而无需为
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是组件/复选框的名称(您提供的名称)。此代码假定状态对象中的属性名称映射到表单字段中的输入名称。