Reactjs 使用无任何值的“选择组件”时出现警告
我在代码中使用了Reactjs 使用无任何值的“选择组件”时出现警告,reactjs,controlled-component,Reactjs,Controlled Component,我在代码中使用了和选择和菜单项组件,如下所示: <div className="form-field full-width-field "> <InputLabel>Q3.Is this the correct data?</InputLabel> <Select
和选择和菜单项组件,如下所示:
<div className="form-field full-width-field ">
<InputLabel>Q3.Is this the correct data?</InputLabel>
<Select
labelId="demo-simple-select-label"
id="demo-simple-select"
value={''}
onChange={handleChange}
>
<MenuItem value={'Y'}>Yes</MenuItem>
<MenuItem value={'N'}>No</MenuItem>
</Select>
</div>
它在屏幕上显示用户选择的是
或否
,但我在控制台中不断收到以下警告I nred颜色:
警告:组件正在更改类型为的非受控输入
未定义要控制的对象。输入元素不应从
从非受控到受控(或反之亦然)。决定是否使用
控制或非控制输入元件的使用寿命
组成部分
如何解决这两个问题?控制您的组件
const [answer, setAnswer] = useState('');
function handleChange(event) {
setAnswer(event.target.value);
}
<div className="form-field full-width-field ">
<InputLabel>Q3.Is this the correct data?</InputLabel>
<Select labelId="demo-simple-select-label"
id="demo-simple-select"
value={answer}
onChange={handleChange}>
<MenuItem value={'Y'}>Yes</MenuItem>
<MenuItem value={'N'}>No</MenuItem>
</Select>
</div>
const[answer,setAnswer]=useState(“”);
函数句柄更改(事件){
setAnswer(event.target.value);
}
这是正确的数据吗?
对
不
使用defaultValue
属性而不是value
属性。请在此阅读更多信息-谢谢。我试试这个。快速提问-我还有两个类似于我在帖子中展示的下拉列表。您是否建议我为其他两个下拉列表定义另外两个userState(“”)
?例如-const[answer1,setAnswer1]=useState(“”)代码>&const[answer2,setAnswer2]=useState(“”)代码>?@Tan是的,如果您有一种表单,我建议您为每个字段定义状态。这是haw控制输入在React中工作的一种方式
const [answer, setAnswer] = useState('');
function handleChange(event) {
setAnswer(event.target.value);
}
<div className="form-field full-width-field ">
<InputLabel>Q3.Is this the correct data?</InputLabel>
<Select labelId="demo-simple-select-label"
id="demo-simple-select"
value={answer}
onChange={handleChange}>
<MenuItem value={'Y'}>Yes</MenuItem>
<MenuItem value={'N'}>No</MenuItem>
</Select>
</div>