Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用无任何值的“选择组件”时出现警告_Reactjs_Controlled Component - Fatal编程技术网

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>