为什么当我使用表单元素时,我必须将e.arget.name放在括号中?
这是我的代码:
<button (click)="filtrarData()" class="btn btn-outline-primary">Vehículos</button>
答案 0 :(得分:7)
这是动态更新对象属性(当属性的名称是未知的,但是在运行时)。这样,您可以使多个React输入具有不同的name
属性,并使用相同的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});
}