是否可以控制无法控制的输入文本? - 反应
Is it possible to control the uncontrollable input text? - React
当用户 select 来自 Material UI 库 的 SelectField 下拉菜单中的项目时,我从状态设置输入文本值但是当它设置时,输入文本变得不可更改,我需要的是当
这是图片;
(在 select 从 SelectField 下拉菜单中输入一个项目之前)
select从下拉列表中选择一个项目后;
所有填充的输入文本现在都变得不可更改,空的文本仍然可以更改,因为它们没有从状态中获取值。
这是代码;
<div className="form-group row">
<label className="col-md-2 control-label">Device ID</label>
<div className="col-md-10">
<input type="text" className="form-control" id="deviceId" value={this.state.deviceId} placeholder="Device ID" ref="_deviceId" />
</div>
</div>
我的状态;
state = {
deviceId: null,
};
然后我设置输入文本,当用户 select 从下拉列表中选择一个项目时;
saveDeviceInternal(index, value) {
if (this.props.templatesList.length > 0){
let deviceId = value;
this.setState({deviceId});
}else{
let deviceId = this.refs._deviceId.value;
this.setState({deviceId});
}
}
尝试将此方法添加到您的class:
handleChange(e) {
let deviceId = e.currentTarget.id
this.setState({deviceId: e.target.value});
}
并将其添加到您的输入组件中:
<input type="text" className="form-control" onChange={this.handleChange.bind(this)} id="deviceId" value={this.state.deviceId} placeholder="Device ID" ref="_deviceId" />
当用户 select 来自 Material UI 库 的 SelectField 下拉菜单中的项目时,我从状态设置输入文本值但是当它设置时,输入文本变得不可更改,我需要的是当
这是图片; (在 select 从 SelectField 下拉菜单中输入一个项目之前)
select从下拉列表中选择一个项目后;
所有填充的输入文本现在都变得不可更改,空的文本仍然可以更改,因为它们没有从状态中获取值。
这是代码;
<div className="form-group row">
<label className="col-md-2 control-label">Device ID</label>
<div className="col-md-10">
<input type="text" className="form-control" id="deviceId" value={this.state.deviceId} placeholder="Device ID" ref="_deviceId" />
</div>
</div>
我的状态;
state = {
deviceId: null,
};
然后我设置输入文本,当用户 select 从下拉列表中选择一个项目时;
saveDeviceInternal(index, value) {
if (this.props.templatesList.length > 0){
let deviceId = value;
this.setState({deviceId});
}else{
let deviceId = this.refs._deviceId.value;
this.setState({deviceId});
}
}
尝试将此方法添加到您的class:
handleChange(e) {
let deviceId = e.currentTarget.id
this.setState({deviceId: e.target.value});
}
并将其添加到您的输入组件中:
<input type="text" className="form-control" onChange={this.handleChange.bind(this)} id="deviceId" value={this.state.deviceId} placeholder="Device ID" ref="_deviceId" />