You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MUI与React:内联判断单选按钮选中状态并修改标签颜色

解决单选按钮选中时修改标签颜色的问题

你的代码存在两个核心问题:

  • 函数组件里不能用this.value,函数组件没有实例化的this对象,直接用当前单选框的目标值做判断即可
  • 缺少onChange事件绑定来更新state,导致选中状态无法同步到value变量

修正后的完整代码示例

import React from 'react';
import { FormControl, FormLabel, RadioGroup, FormControlLabel, Radio } from '@mui/material';

const RadioDemo = () => {
  const [value, setValue] = React.useState("female");

  const handleChange = (event) => {
    setValue(event.target.value);
  };

  return (
    <FormControl>
      <FormLabel>选项组</FormLabel>
      <RadioGroup value={value} onChange={handleChange}>
        <FormControlLabel
          sx={{ color: value === "female" ? "red" : "blue" }}
          value="female"
          control={<Radio />}
          label="Female"
        />
        <FormControlLabel
          sx={{ color: value === "bunn" ? "red" : "blue" }}
          value="bunn"
          control={<Radio />}
          label="Bunn"
        />
      </RadioGroup>
    </FormControl>
  );
};

export default RadioDemo;

关键说明

  • 每个FormControlLabel的sx属性中,直接用value === "当前单选框的value值"做判断,比如第二个单选框就对比value === "bunn"
  • 通过RadioGroup的onChange事件绑定处理函数,每次选中单选框时更新state里的value,标签颜色会实时响应状态变化
  • 初始state设为"female",页面加载时"Female"的标签会默认显示红色

内容的提问来源于stack exchange,提问作者vector

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 21:39:57