gpt4 book ai didi

javascript - 为什么我们需要将 e.target.name 放在方括号 [] 中?

转载 作者:行者123 更新时间:2023-12-03 13:34:39 25 4
gpt4 key购买 nike

为什么当我使用表单元素时我必须将 e.target.name 放在括号中?

这是我的代码:

onChange (e) {
this.setState({ *[e.target.name]* : e.target.value});
}

(...)
<div>
<label htmlFor=""> Title : </label>
<input type="text" name="title" onChange={this.onChange} value={this.state.title} />
</div>
</form>

最佳答案

这是动态更新对象属性(当属性名称预先未知但运行时时)。这样,您就可以拥有多个具有不同 name 属性的 React 输入,并使用相同的 onChange 处理程序来更新部分状态。

相关to this .

而不是这个:

<input type="text" name="title" onChange={this.onTitleChange} value={this.state.title} />
<input type="text" name="address" onChange={this.onDescriptionChange} value={this.state.address} />
<input type="text" name="description" onChange={this.onAddressChange} value={this.state.description} />

onTitleChange (e) {
this.setState({ title : e.target.value});
}
onAddressChange (e) {
this.setState({ address : e.target.value});
}
onDescriptionChange (e) {
this.setState({ description : e.target.value});
}

我们可以只编写一个像您介绍的处理程序:

<input type="text" name="title" onChange={this.onChange} value={this.state.title} />
<input type="text" name="address" onChange={this.onChange} value={this.state.address} />
<input type="text" name="description" onChange={this.onChange} value={this.state.description} />

onChange (e) {
this.setState({ [e.target.name] : e.target.value});
}

关于javascript - 为什么我们需要将 e.target.name 放在方括号 [] 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50376353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com