javascript - 材质ui单选按钮组中的Reactjs不受控制的组件错误
问题描述
我是使用 ReactJS 的初学者。我的材质 UI 中的组件单选按钮组出现错误。我有一个值为布尔值的单选按钮。
当我尝试单击单选按钮中的值时,它没有选择,但onchange
函数的控制台日志被触发,并且将显示如下错误:Material-UI: A component is changed the default value state of an uncontrolled RadioGroup after正在初始化。要抑制此警告,请选择使用受控 RadioGroup。
这是我的完整代码:
<Grid item>
<RadioGroup row aria-label="privateEntity" name="privateEntity" defaultValue={state.privateEntity} onChange={changePrivateEntity}>
<FormControlLabel value={true} disabled={requestType === 'PUT' || state.agency} control={<Radio color="primary" />} label="YES" />
<FormControlLabel value={false} disabled={requestType === 'PUT' || state.agency} control={<Radio color="primary" />} label="NO" />
</RadioGroup>
</Grid>
这是我的 onchange 函数:
const changePrivateEntity = (event, value) => {
event.persist();
// console.log(value);
let x = value === 'true' ? true : false;
setState((prev) => ({
...prev,
privateEntityDefined: true,
privateEntity: x,
inputErrors: {
...prev.inputErrors,
privateEntity: false,
},
inputHelpTexts: {
...prev.inputHelpTexts,
privateEntity: '',
},
}));
};
这是我的状态初始化:
const [state, setState] = useState({
privateEntity: selectedRecord ? selectedRecord.agency.private_entity : null,
privateEntityDefined: !!selectedRecord,
})
解决方案
value
因为你没有传递RadioGroup
组件所以它会显示这个警告:
只需更新defaultValue
到value
value={state.privateEntity}
推荐阅读
- git - “git push -u”和“git push --set-upstream”之间的确切区别是什么?
- amazon-web-services - 时间滑动窗口数据获取场景的 DynamoDB 键模式应该是什么?
- php - 根据 $value 更改行颜色
- android - 如何在android中将切换按钮设置为手动模式
- python - selenium.common.exceptions.WebDriverException:消息:“geckodriver”可执行文件需要在 PATH 中。火狐
- php - Memberpress 从电子邮件中获取成员
- javascript - 如何使用 Paper.js 计算闭合多边形路径的内角?
- php - 在php中将Mysql数据转换为Excel
- javascript - reduce() 产生一个对象的对象
- python - 如何在python 3中删除字符串中的最后一个字符