输入字段不编辑..如何在reactjs中为输入字段写入onchange函数

时间:2017-10-06 05:59:08

标签: reactjs

我发送道具值到输入字段。当我试图编辑     字段它不是编辑..如何写onchange句柄功能。可以任何人     简要解释控制和非受控输入

handleUserInput = (e) => {
//what to do here in order to edit the input field
}
render() {
    return(
        <div>
            <div className="info">
                <label className="label">Store Name</label>
                <input type="text" 
                    ref="storename"                                                                                       
                    className="form-control"                                                                                       
                    value={this.props.storeName}                                                                                       
                    placeholder="Store Name"                                                                                                                                                                          
                    onChange={this.handleUserInput}                                                                                       
                    disabled={this.state.disabled}
                />                                
            </div>
        </div>
    );
}

1 个答案:

答案 0 :(得分:1)

改变这个:

value={this.props.storeName}                                                                                       

到此(否则输入的值总是相同的 - 在props中收到的值):

value={this.state.storeName}                                                                                       

并将props复制到构造函数中的状态(只有在使用props作为初始值时才应在构造函数中执行此操作):

constructor(props){
  super(props)
  this.state = {
    storeName: props.storeName
  }
}

handleUserInput=(e)=>{
  this.setState({storeName: e.target.value});
}

现在我们已经将输入框设置为受控元素(虽然从道具获取初始值)。如果您对受控组件感兴趣,可以查看docs,这是一个难以理解的概念。