更改输入字段的值 - React
Changing the value of input field - React
在 select 来自 MaterialUI 库的 SelectField 的项目后,我一直在尝试更改输入字段的值,但我还没有成功,但是就我搜索它而言,我写的一切似乎都是它应该是的。
这是我用来改值的;
var element = ReactDOM.findDOMNode(this.refs._deviceId);
element.setAttribute('value', 'deneme');
console.log(element);
这是输入框;
<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" placeholder="Device ID" ref="_deviceId" />
</div>
</div>
而且我在select这个item之后安慰了元素变量,为了检查一切正常,好像没有问题。
这是控制台日志;
如您所见,值已成功放置,但在屏幕上,输入字段没有任何反应。
设置 value
属性后,您的组件需要重新渲染。 React 仅在检测到状态更改时才重新渲染组件。所以宁愿使用状态变量-
//Declare the state variable
this.state = {
inputValue: ''
};
//Use a lifecycle event or your own method to change the value of that state by using the setState method as-
someMethod() {
this.setState({
inputValue: 'deneme'
});
}
//In HTML use the above state as-
<input type="text" className="form-control" id="deviceId" placeholder="Device ID" ref="_deviceId" value={this.state.inputValue} />
记得使用setState方法来改变状态,以便组件重新渲染。
或
您可以调用this.forceUpdate()
强制重新渲染组件。
在 select 来自 MaterialUI 库的 SelectField 的项目后,我一直在尝试更改输入字段的值,但我还没有成功,但是就我搜索它而言,我写的一切似乎都是它应该是的。
这是我用来改值的;
var element = ReactDOM.findDOMNode(this.refs._deviceId);
element.setAttribute('value', 'deneme');
console.log(element);
这是输入框;
<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" placeholder="Device ID" ref="_deviceId" />
</div>
</div>
而且我在select这个item之后安慰了元素变量,为了检查一切正常,好像没有问题。
这是控制台日志;
如您所见,值已成功放置,但在屏幕上,输入字段没有任何反应。
设置 value
属性后,您的组件需要重新渲染。 React 仅在检测到状态更改时才重新渲染组件。所以宁愿使用状态变量-
//Declare the state variable
this.state = {
inputValue: ''
};
//Use a lifecycle event or your own method to change the value of that state by using the setState method as-
someMethod() {
this.setState({
inputValue: 'deneme'
});
}
//In HTML use the above state as-
<input type="text" className="form-control" id="deviceId" placeholder="Device ID" ref="_deviceId" value={this.state.inputValue} />
记得使用setState方法来改变状态,以便组件重新渲染。
或
您可以调用this.forceUpdate()
强制重新渲染组件。