一组可供选择的按钮——称为单选按钮——在任何时候最多只能选择一个按钮。
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;
完整的键盘导航。
支持水平/垂直方向。
可以是受控或非受控模式。
导入所有部分并将它们组合在一起。
包含单选按钮组的所有部分。
组中的一个可被选中的项目。当在 form 中使用时,它将渲染一个 input 以确保事件正确传播。
当单选按钮项处于选中状态时渲染。您可以直接设置该元素的样式,也可以将其用作放置图标的包装器,或二者兼有。
默认情况下,RadioGroup.Item 会渲染一个视觉隐藏的 input,用于表单提交。若要重新组合、移动或排除该输入,可以改用更底层的部件来构建每个项目。
重要: 这些部件尚不稳定,并带有
unstable_前缀,因此其 API 可能会在未来版本中发生变化。
RadioGroup.unstable_ItemProvider 提供项目状态,并接受项目的 value 和 disabled 属性。RadioGroup.unstable_ItemTrigger 是包裹 RadioGroup.Indicator 的交互元素。RadioGroup.unstable_ItemBubbleInput 是 RadioGroup.Item 默认渲染的视觉隐藏输入。不需要表单提交时,可以省略它。遵循 单选按钮组 WAI-ARIA 设计模式 并使用 移动 tabindex 来管理单选按钮项之间的焦点移动。