对象我的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正在改变一个受控制的文本类型的不受控制的输入。输入元素不应从非受控状态切换为受控状态(反之亦然)。决定在组件的生命周期中使用受控或不受控制的输入元素。' –