单选框 Radio

单选框允许用户在一组选项中选择一个选项。

何时使用

  • 在一组互斥的选项中进行单项选择时
  • 需要展示所有可选项供用户比较时
  • 表单中需要用户做出明确选择时

示例

基础用法

最简单的单选框使用方式。

正在加载组件...
code

不同状态

单选框支持多种状态:可用、禁用、选中、选中且禁用。

正在加载组件...
code

选中状态

展示选中状态的单选框。

正在加载组件...
code

所有状态概览

展示单选框的所有可能状态。

正在加载组件...
code

交互式示例

单选框支持受控模式,可以响应用户的点击操作。

正在加载组件...
code

标签可点击

可以通过 labelClickable 属性控制标签是否可点击。

正在加载组件...
code

RadioGroup 单选框组

使用 RadioGroup 可以方便地管理一组单选框。

正在加载组件...
code

垂直排列

通过 direction 属性可以设置单选框组的排列方向。

正在加载组件...
code

使用子组件

可以通过 RadioGroup.Item 子组件来自定义每个选项。

正在加载组件...
code

禁用整组

可以通过 disabled 属性禁用整个单选框组。

正在加载组件...
code

非受控模式

可以使用 defaultValue 属性设置默认选中项。

正在加载组件...
code

API

Radio Props

参数说明类型默认值
checked是否选中(受控模式)boolean-
defaultChecked默认是否选中(非受控模式)boolean-
disabled是否禁用booleanfalse
value单选框的值string | number-
onChange选中状态改变时的回调(checked: boolean, e: ChangeEvent<HTMLInputElement>) => void-
children标签文本ReactNode-
labelClickable点击文字部分是否可以激活单选框booleanfalse
className自定义类名string-
id自定义 IDstring-
namename 属性string-

RadioGroup Props

参数说明类型默认值
value当前选中的值(受控模式)string | number-
defaultValue默认选中的值(非受控模式)string | number-
options选项配置RadioOptionType[]-
disabled是否禁用整组booleanfalse
direction排列方向'horizontal' | 'vertical''horizontal'
onChange选中值改变时的回调(value: string | number) => void-
children子元素ReactNode-
className自定义类名string-
nameRadioGroup 的 name 属性string-
labelClickable点击文字部分是否可以激活单选框booleantrue

RadioOptionType

参数说明类型默认值
label选项标签ReactNode-
value选项值string | number-
disabled是否禁用该选项boolean-

RadioGroup.Item Props

继承 Radio 的所有属性,但以下属性除外:

参数说明类型默认值
value单选框的值string | number-
checked是否选中(由 RadioGroup 控制)boolean-
onChange选中状态改变时的回调(由 RadioGroup 控制)function-
namename 属性(由 RadioGroup 控制)string-

注意事项

  1. 单选框在同一组内是互斥的,只能有一个被选中
  2. RadioGroup 会自动为每个 Radio 分配相同的 name 属性,确保它们属于同一组
  3. 在受控模式下,需要同时提供 valueonChange 属性
  4. 在非受控模式下,可以使用 defaultValue 设置默认选中项
  5. 通过 labelClickable 属性可以控制标签是否可点击,默认情况下 Radio 的标签不可点击,RadioGroup 中的标签可点击
  6. RadioGroup 支持两种排列方向:水平(horizontal)和垂直(vertical)
  7. 可以通过 options 属性快速配置选项,也可以通过子组件的方式自定义每个选项