允许用户在选中和未选中之间切换的控件。
import * as React from "react";import { Switch } from "radix-ui";import "./styles.css";const SwitchDemo = () => (<form><div style={{ display: "flex", alignItems: "center" }}><label id="airplane-mode-label" htmlFor="airplane-mode" className="Label" style={{ paddingRight: 15 }} >Airplane mode</label><Switch.Root id="airplane-mode" aria-labelledby="airplane-mode-label" className="SwitchRoot" ><Switch.Thumb className="SwitchThumb" /></Switch.Root></div></form>);export default SwitchDemo;
完整的键盘导航。
可以是受控或非受控。
导入所有部分并将它们组合在一起。
包含开关的所有部分。使用在form内时也会渲染一个input,以确保事件正确传播。
用于直观指示开关是开还是关的部分。
默认情况下,Switch.Root 会渲染一个视觉隐藏的 input,用于表单提交。要重新组合、移动或排除该输入,可以改用其较低层级的部分来构建 switch。
重要: 这些部分不稳定,并带有
unstable_前缀,因此其 API 可能会在未来版本中发生变化。
Switch.unstable_Provider 提供 switch 状态,并接受与表单相关的属性(name、value、checked、defaultChecked、required、disabled、onCheckedChange)。Switch.unstable_Trigger 是包裹 Switch.Thumb 的交互式按钮。Switch.unstable_BubbleInput 是 Switch.Root 默认渲染的视觉隐藏输入。如果不需要表单提交,可以省略它。符合switch角色要求。