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

React.js单选按钮筛选功能正常但无法正确勾选问题求助

问题原因

  • 表单单选框的target.value默认返回字符串类型,你定义的filtersByExp数组中的item.value为数字类型,checked属性用严格相等===做判断时,类型不一致会返回false,因此单选框永远无法进入选中状态。
  • 初始exp为null的设置符合需求,默认所有单选框都不会选中。

修复方案

修改handleRadioChange方法,将获取到的value值转换为数字类型即可:

const handleRadioChange = ({ target }) => {
  let value = Number(target.value); // 新增字符串转数字逻辑
  let name = target.name;
  setFilter({
    ...filter,
    [name]: value,
  });
};

可选兼容方案(不推荐)

如果不想修改赋值逻辑,也可以将checked的严格相等判断改为非严格相等,会自动做隐式类型转换:

<Form.Check
  type="radio"
  label={item.label}
  name="exp"
  checked={filter.exp == item.value} // 改为非严格相等
  onChange={handleRadioChange}
  value={item.value}
/>

小优化建议

你在遍历数组时写的[...filtersByExp]属于冗余操作,直接用filtersByExp.map即可,不会影响原有功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 01:27:00