我正在尝试为几个文本字段编写一个处理函数,用户可以在其中键入文本。每个文本字段都有一个函数,用于将输入的数据发送到props中,并发送到另一个类组件进行提交。我正在尝试编写一个事件处理程序,它可以处理所有不同的文本字段,而不必为每个文本字段编写处理函数。我正在使用Fabric UI,我遵循的指南都说需要有一个'name‘属性,它可以被处理程序函数使用,这样它就可以更新状态。我已经尝试添加'name','type‘,但没有被接受。
谁能告诉我如何通过给每个不同的东西一个唯一的“名字”来区分它们?
下面是我当前的not working/finished处理函数来处理它们:
public handleObjectWithMultipleFields = (ev) => {
const target = ev.target;
const value = target.
this.setState({
[ev]: value
})
}
下面是其中一个文本字段的函数:
private _onJobTitReportToChange = (ev: React.FormEvent<HTMLInputElement>, newValue?: string) => {
this.props.onJobTitleReportToChange(newValue);
}
下面是组件中的呈现,其中包含
<TextField value={this.props.jobTitleReportTo}
onChange={this._onJobTitReportToChange}/>
一如既往的感谢。
发布于 2019-09-25 03:44:46
为什么不直接将名称分配给控件(如果我理解正确的话)。
<TextField name="txtA"
onChange={this.handleObjectWithMultipleFields}/>
<TextField name="txtB"
onChange={this.handleObjectWithMultipleFields}/>
<div>
public handleObjectWithMultipleFields = (ev, newText: string): void => {
const target = ev.target;
const value = newText;
var _ControlName=target.name;
this.setState({
controlName: _ControlName,
ControlValue:value
})
}
发布于 2019-09-24 13:39:21
我认为您需要从输入中提取名称和值,而不仅仅是值。
public handleObjectWithMultipleFields = (ev) => {
const target = ev.target;
const {value, name} = target;
this.setState({
[name]: value
})
}
https://stackoverflow.com/questions/58081472
复制