對象我的onChange不工作我試圖通過ES6爲什麼當國家對ReactJs
class MyApp extends React.Component{
constructor(props){
super(props);
this.state = {
employee:{
name: 'hello',
birthday: ''
},
price: ''
}
this.handleValueChange = this.handleValueChange.bind(this);
}
handleValueChange(event){
valueName = event.target.name
this.setState({[valueName]: event.target.value});
};
render(){
return(
<form>
<input type="text" placeholder="name" value={this.state.employee.name} onChange={this.handleValueChange} name="name"/>
<input type="text" placeholder="name" value={this.state.price} onChange={this.handleValueChange} name="price"/>
</form>
)
}
}
建立一個應用程序使用ReactJS作爲我的代碼,我在onChange
事件中使用handleVauleChange
改變輸入的默認狀態html標籤。如果this.state
中的數據是對象(如員工),則handleVauleChange
函數將不起作用,但數據類似於價格,它將正常工作。
爲什麼發生了?
我厭倦了使用你的代碼,但employee.name是不受控制的 –
你可以澄清你的意思是什麼employee.name是不受控制的。 'handleValueChange'方法不需要在'setState'中定義employee關鍵字。指定輸入名稱屬性時,您只需要使用點符號。 – jpdelatorre
我用你的代碼和控制檯告訴我'警告:MyAppForm正在改變一個受控制的文本類型的不受控制的輸入。輸入元素不應從非受控狀態切換爲受控狀態(反之亦然)。決定在組件的生命週期中使用受控或不受控制的輸入元素。' –