Back to Ant Design

Radio

components/radio/index.zh-CN.md

6.3.75.4 KB
Original Source

何时使用 {#when-to-use}

  • 用于在多个备选项中选中单个状态。
  • 和 Select 的区别是,Radio 所有选项默认可见,方便用户在比较中选择,因此选项不宜过多。
tsx
// 使用 Radio.Group 组件时,推荐的写法 ✅
return (
  <Radio.Group
    value={value}
    options={[
      { value: 1, label: 'A' },
      { value: 2, label: 'B' },
      { value: 3, label: 'C' },
    ]}
  />
);

// 不推荐的写法 🙅🏻‍♀️
return (
  <Radio.Group value={value}>
    <Radio value={1}>A</Radio>
    <Radio value={2}>B</Radio>
    <Radio value={3}>C</Radio>
  </Radio.Group>
);

代码演示 {#examples}

<!-- prettier-ignore-start -->

<code src="./demo/basic.tsx">基本</code> <code src="./demo/disabled.tsx">不可用</code> <code src="./demo/radiogroup.tsx">单选组合</code> <code src="./demo/radiogroup-more.tsx">Radio.Group 垂直</code> <code src="./demo/radiogroup-block.tsx" version="5.21.0">Block 单选组合</code> <code src="./demo/radiogroup-options.tsx">Radio.Group 组合 - 配置方式</code> <code src="./demo/radiobutton.tsx">按钮样式</code> <code src="./demo/radiogroup-with-name.tsx">单选组合 - 配合 name 使用</code> <code src="./demo/size.tsx">大小</code> <code src="./demo/radiobutton-solid.tsx">填底的按钮样式</code> <code src="./demo/style-class.tsx" version="6.0.0">自定义语义结构的样式和类</code> <code src="./demo/badge.tsx" debug>测试 Badge 的样式</code> <code src="./demo/debug-group-width.tsx" debug>Group 内图标等宽</code> <code src="./demo/wireframe.tsx" debug>线框风格</code> <code src="./demo/component-token.tsx" debug>组件 Token</code> <code src="./demo/debug-upload.tsx" debug>Upload Debug</code>

<!-- prettier-ignore-end -->

API

通用属性参考:通用属性

Radio/Radio.Button

<!-- prettier-ignore -->
参数说明类型默认值版本
checked指定当前是否选中booleanfalse
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-6.0.0
defaultChecked初始是否选中booleanfalse
disabled禁用 Radiobooleanfalse
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-6.0.0
value根据 value 进行比较,判断是否选中any-

Radio.Group

单选框组合,用于包裹一组 Radio

<!-- prettier-ignore -->
参数说明类型默认值版本
block将 RadioGroup 宽度调整为其父宽度的选项booleanfalse5.21.0
buttonStyleRadioButton 的风格样式,目前有描边和填色两种风格outline | solidoutline
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-6.0.0
defaultValue默认选中的值any-
disabled禁选所有子单选器booleanfalse
nameRadioGroup 下所有 input[type="radio"]name 属性。若未设置,则将回退到随机生成的名称string-
options以配置形式设置子元素string[] | number[] | Array<CheckboxOptionType>-
optionType用于设置 Radio options 类型default | buttondefault4.4.0
orientation排列方向horizontal | verticalhorizontal
size大小,只对按钮样式生效large | medium | small-
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-6.0.0
value用于设置当前选中的值any-
vertical值为 true,Radio Group 为垂直方向。与 orientation 同时存在,以 orientation 优先booleanfalse
onChange选项变化时的回调函数function(e:Event)-

CheckboxOptionType

属性说明类型默认值版本
label用于作为 Radio 选项展示的文本string-4.4.0
value关联 Radio 选项的值string | number | boolean-4.4.0
style应用到 Radio 选项的 styleReact.CSSProperties-4.4.0
classNameRadio 选项的类名string-5.25.0
disabled指定 Radio 选项是否要禁用booleanfalse4.4.0
title添加 Title 属性值string-4.4.0
id添加 Radio Id 属性值string-4.4.0
onChange当 Radio Group 的值发送改变时触发(e: CheckboxChangeEvent) => void;-4.4.0
required指定 Radio 选项是否必填booleanfalse4.4.0

方法

Radio

名称描述
blur()移除焦点
focus()获取焦点

Semantic DOM

<code src="./demo/_semantic.tsx" simplify="true"></code>

主题变量(Design Token){#design-token}

<ComponentTokenTable component="Radio"></ComponentTokenTable>