更改输入字段的值 - 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()强制重新渲染组件。