跳转到内容
Page

Radio

在共享同一 name 的分组中选择一项。

import { Radio } from "@pelagornis/page/components";

上方预览渲染的就是这个文件。把它复制到 src/components/ 即可开始使用。

src/components/RadioExample.tsx
import { useState } from "react";
import { Radio, Stack } from "@pelagornis/page/components";
const plans = [
{ value: "basic", label: "Basic", description: "For personal docs" },
{ value: "pro", label: "Pro", description: "Includes versioned docs" },
{ value: "team", label: "Team", description: "Shared workspaces" },
];
export default function RadioDemo() {
const [plan, setPlan] = useState("pro");
return (
<Stack gap="sizeSmall" role="radiogroup" aria-label="Plan">
{plans.map((item) => (
<Radio
key={item.value}
name="plan"
value={item.value}
label={item.label}
description={item.description}
checked={plan === item.value}
onChange={(event) => setPlan(event.target.value)}
/>
))}
</Stack>
);
}

Radio 可以直接写在 .mdx 页面中。在 frontmatter 下方导入即可。它在服务器端渲染,不需要 client 指令。

src/content/docs/example.mdx
---
title: Example
---
import { Radio } from "@pelagornis/page/components";
<Radio name="plan" value="basic" label="Basic" defaultChecked />
<Radio name="plan" value="pro" label="Pro" />

pageMarkdoc() 会为这个组件注册 radio 标签。在 markdoc.config.mjs 中添加一次预设(见在 Markdoc 中使用),就能在任意 .mdoc 页面中使用该标签。

src/content/docs/example.mdoc
{% radio name="plan" value="basic" label="Basic" defaultChecked=true /%}
{% radio name="plan" value="pro" label="Pro" /%}

属性的名称和取值与 React props 相同。

组件的组成部分,以及每个部分渲染的 data-refineui 角色。

部件角色
rootradio

组件会设置样式的状态。组件状态通过 data 属性暴露。

类型状态
伪类focus-visible

组件获得焦点时处理的按键。

按键动作
Spaceactivate