【发布时间】:2021-05-15 01:24:44
【问题描述】:
我在代码中使用了<InputLabel>和Select和MenuItem组件如下:
<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>
所以,当我使用上面Select 中所示的value = {''} 时,我在代码中看不到任何错误。但是,当用户选择Yes或No时,屏幕上什么也没有显示,如下图:
但是,当我注释掉 value = {''} 部分并像这样使用它时:
<Select
labelId="demo-simple-select-label"
id="demo-simple-select"
//value={''}
onChange={handleChange}
>
它在屏幕上显示用户选择Yes 或No,但我在控制台中不断收到以下红色警告:
警告:组件正在更改类型不受控制的输入 undefined 被控制。输入元素不应从 不受控制到受控制(反之亦然)。决定使用 受控或不受控的输入元件的寿命 组件。
如何解决这两个问题?
【问题讨论】:
-
使用
defaultValue属性而不是value属性。在这里阅读更多 - reactjs.org/docs/uncontrolled-components.html
标签: reactjs controlled-component