我试图更改Select input的值,然后在控制台中收到以下警告。
索引js:1446警告:组件正在将文本类型的受控输入更改为不受控。输入元件不应从受控切换到非受控(反之亦然)。决定在组件的生命周期内使用受控或非受控输入元件。
但我只是以正确的方式更新状态,这是我的代码
<Select
value={props.selectedService}
onChange={props.handleSelectChange}
inputProps={{
name: 'selectedService',
}}
>
<MenuItem value="">
<em>None</em>
</MenuItem>
<MenuItem value="Dry Cleaning">Dry Cleaning</MenuItem>
<MenuItem value="Washing and Ironing">Washing and Ironing</MenuItem>
<MenuItem value="Rolling">Rolling</MenuItem>
</Select>
handleselectchange功能就在这里。
handleSelectChange =({target: {name,value}}) => {
console.log(name);
console.log(value);
this.setState({
serviceRequest: {
selectedService: value
}
});
}
state = {
open: false,
selectedDate: new Date(),
selectedTime : new Date(),
mailDetails :{
name:"",
email:'',
message:''
},
serviceRequest: {
name: '',
email: '',
mobileNumber:'',
address:'',
landMark:'',
selectedService:''
}
};
有人能告诉我是怎么回事吗?