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

React中如何将单选按钮选中状态存入单个状态对象

实现方法

1. 移除冗余的单独状态

删掉单独声明的isPublished状态,我们已经在values对象里维护了checked字段来管理单选状态,无需额外单独状态。

2. 给单选按钮添加name属性

修改单选按钮的JSX,为每个input添加name="checked",确保和values里的字段名对应:

<div className="radio">
  <input
    type="radio"
    value="true"
    name="checked"
    checked={values.checked === true}
    onChange={handleInput}
  />
  Yes
  <input
    type="radio"
    value="false"
    name="checked"
    checked={values.checked === false}
    onChange={handleInput}
  />
  No
</div>

3. 调整输入处理函数,兼容布尔值转换

修改handleInput函数,处理单选按钮的字符串值转布尔值的逻辑,同时改用函数式更新保证状态的正确性:

const handleInput = (e: { target: { name: string; value: string } }) => {
  const { name, value } = e.target;
  setValues(prevValues => ({
    ...prevValues,
    [name]: name === 'checked' ? value === 'true' : value
  }));
};

4. 清理无用代码

删掉原来的handleRadio函数,现在所有输入(包括单选按钮)都通过handleInput统一处理。

这样修改后,单选按钮的选中状态就会正确同步到values对象的checked字段里,和其他输入字段一起统一管理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:45:38