Material-UI 的 Radio 单选框怎么绑定值不生效?
我用 Material-UI 写了个单选组,但选了选项后 state 没变化,控制台也没报错。明明写了 onChange 事件,但就是不触发。
我试过把 value 设成字符串和数字,也检查了 checked 属性是不是和 state 对得上,还是不行。代码大概是这样:
const [value, setValue] = useState('option1');
return (
<RadioGroup value={value} onChange={(e) => setValue(e.target.value)}>
<FormControlLabel value="option1" control={<Radio />} label="选项1" />
<FormControlLabel value="option2" control={<Radio />} label="选项2" />
</RadioGroup>
);
常见坑就这几个:
1. 检查导入路径,新版 MUI(v5)是 @mui/material,老版才是 @material-ui/core。如果你用的是新版却按老版导入,组件根本不会正常工作。
2. 确认 RadioGroup 的 onChange 确实没触发,可以在回调里打个 console.log 看看。
3. 看看外层有没有什么阻止事件冒泡的东西。
如果以上都没问题,把完整的组件代码和导入语句贴出来看看,光看这一段是真看不出问题在哪——这段代码本身是能跑能用的。