Components

单选按钮组

一组可以选择的按钮——称为单选按钮——在任何时候最多只能选择一个按钮。

import * as React from "react";
import { RadioGroup } from "radix-ui";
import "./styles.css";
const RadioGroupDemo = () => (
<form>
<RadioGroup.Root className="RadioGroupRoot" defaultValue="default" aria-label="View density" >
<div style={{ display: "flex", alignItems: "center" }}>
<RadioGroup.Item className="RadioGroupItem" value="default" id="r1">
<RadioGroup.Indicator className="RadioGroupIndicator" />
</RadioGroup.Item>
<label className="Label" htmlFor="r1">
Default
</label>
</div>
<div style={{ display: "flex", alignItems: "center" }}>
<RadioGroup.Item className="RadioGroupItem" value="comfortable" id="r2">
<RadioGroup.Indicator className="RadioGroupIndicator" />
</RadioGroup.Item>
<label className="Label" htmlFor="r2">
Comfortable
</label>
</div>
<div style={{ display: "flex", alignItems: "center" }}>
<RadioGroup.Item className="RadioGroupItem" value="compact" id="r3">
<RadioGroup.Indicator className="RadioGroupIndicator" />
</RadioGroup.Item>
<label className="Label" htmlFor="r3">
Compact
</label>
</div>
</RadioGroup.Root>
</form>
);
export default RadioGroupDemo;

Features

    完整的键盘导航。

    支持水平/垂直方向。

    可以是受控或非受控模式。

安装

从命令行安装组件。

npm install @radix-ui/react-radio-group

结构

导入所有部分并将它们组合在一起。

import { RadioGroup } from "radix-ui";
export default () => (
<RadioGroup.Root>
<RadioGroup.Item>
<RadioGroup.Indicator />
</RadioGroup.Item>
</RadioGroup.Root>
);

API 参考

根元素

包含单选按钮组的所有部分。

PropTypeDefault
asChild
boolean
false
defaultValue
string
No default value
value
string
No default value
onValueChange
function
No default value
disabled
boolean
No default value
name
string
No default value
required
boolean
No default value
orientation
enum
undefined
dir
enum
No default value
loop
boolean
true
Data attributeValues
[data-disabled]

禁用时存在

项目

组中的一个可被选中的项目。当在 form 中使用时,它将渲染一个 input 以确保事件正确传播。

PropTypeDefault
asChild
boolean
false
value
string
No default value
disabled
boolean
No default value
required
boolean
No default value
Data attributeValues
[data-state]"checked" | "unchecked"
[data-disabled]

禁用时存在

指示器

当单选按钮项处于选中状态时渲染。您可以直接样式化该元素,也可以将其用作放置图标的包装器,或二者兼有。

PropTypeDefault
asChild
boolean
false
forceMount
boolean
No default value
Data attributeValues
[data-state]"checked" | "unchecked"
[data-disabled]

禁用时存在

可访问性

遵循 单选按钮组 WAI-ARIA 设计模式 并使用 移动 tabindex 来管理单选按钮项之间的焦点移动。

键盘交互

KeyDescription
Tab
将焦点移动到已选中的单选按钮项或组中的第一个单选按钮项。
Space
当焦点位于未选中的单选按钮项时,选中它。
ArrowDown
移动焦点并选中组中的下一个单选按钮项。
ArrowRight
移动焦点并选中组中的下一个单选按钮项。
ArrowUp
将焦点移动到组中的上一个单选按钮项。
ArrowLeft
将焦点移动到组中的上一个单选按钮项。