Javascript 对更改集作出反应,但输入仍为只读

Javascript 对更改集作出反应,但输入仍为只读,javascript,reactjs,onchange,Javascript,Reactjs,Onchange,我正在ReactJs中处理表单,并用state的值填充输入字段。 但我的输入字段被创建为只读。即使我设置了onChange函数 handleNameChange(event) { myEvent.name = event.target.value; } render(){ return( <input type="text" id="eventName" className="form-control" onChange={this.handl

我正在ReactJs中处理表单,并用state的值填充输入字段。 但我的输入字段被创建为只读。即使我设置了onChange函数

handleNameChange(event) {
   myEvent.name = event.target.value;
}       

render(){
   return(  
       <input type="text" id="eventName" className="form-control" onChange={this.handleNameChange.bind(this)} value={this.state.name}/>
   );
}
handleNameChange(事件){
myEvent.name=event.target.value;
}       
render(){
报税表(
);
}

我不理解这种行为。有人能解释一下吗?谢谢

要更改React中组件的状态,您需要使用。调用该方法后,将使用您设置的新数据重新呈现组件。下面是使用
setState
的示例:

类示例扩展了React.Component{
构造函数(){
超级();
this.state={name:'Harambe'};
this.handleNameChange=this.handleNameChange.bind(this);
}
handleNameChange(事件){
this.setState({name:event.target.value});
}
render(){
console.log(this.state);
报税表(
);
}
}
ReactDOM.render(,document.getElementById('View'))

原因是您正在使用状态变量存储文本字段值,但您没有更新onChange事件的值,因为您的文本字段是只读的,请尝试以下操作:

handleNameChange(event) {
    this.setState({name: event.target.value});
}       

render(){
    return(  
        <input type="text" id="eventName" className="form-control" onChange={this.handleNameChange.bind(this)} value={this.state.name}/>
    );
}
handleNameChange(事件){
this.setState({name:event.target.value});
}       
render(){
报税表(
);
}

您的
handleNameChange
功能中的
myEvent
是什么?在这里,我假设您希望执行类似于
this.setState({name:event.target.value})
的操作,在官方文档中对此行为有明确的解释。确切地谢谢!这让我很头疼。react是如何解决这些问题的,真是不可思议!