单选框组

查看源代码

在一组相关且互斥数据中,用户仅能选择一个选项。

演示

import { Radio, RadioGroup } from "@resolid/react-ui";

export default function App() {
  return (
    <RadioGroup name={"frameworksRadioGroup"} className={"gap-5"}>
      <Radio value={"React"}>React</Radio>
      <Radio value={"Angular"}>Angular</Radio>
      <Radio value={"Vue"}>Vue</Radio>
      <Radio value={"SolidJS"}>SolidJS</Radio>
      <Radio value={"Svelte"}>Svelte</Radio>
    </RadioGroup>
  );
}

用法

import { RadioGroup, Radio } from "@resolid/react-ui";
  • RadioGroup: 单选框组
  • Radio: 单选框,必须在 RadioGroup 内部使用

特点

  • 遵循 WAI ARIA Radio Group 设计模式。
  • 每个 Radio 都使用本机 HTML <input> 元素构建,该元素在视觉上隐藏以允许自定义样式。
  • 完整的键盘导航。
  • 支持水平/垂直方向。
  • 可以是受控的,也可以是不受控的。

举例

默认值

使用 defaultValue 属性来控制默认选定的单选项目

import { Radio, RadioGroup } from "@resolid/react-ui";

export default function App() {
  return (
    <RadioGroup name={"frameworksRadioGroup"} defaultValue={"React"} className={"gap-5"}>
      <Radio value={"React"}>React</Radio>
      <Radio value={"Angular"}>Angular</Radio>
      <Radio value={"Vue"}>Vue</Radio>
      <Radio value={"SolidJS"}>SolidJS</Radio>
      <Radio value={"Svelte"}>Svelte</Radio>
    </RadioGroup>
  );
}

可控值

使用 valueonChange 属性来控制选定的单选项目

你选择的框架是:

import { Radio, RadioGroup } from "@resolid/react-ui";
import { useState } from "react";

export default function App() {
  const [value, setValue] = useState("");

  return (
    <div className={"flex flex-col gap-2"}>
      <p>你选择的框架是: {value}</p>
      <RadioGroup
        name={"frameworksRadioGroup"}
        value={value}
        onChange={setValue}
        className={"gap-5"}
      >
        <Radio value={"React"}>React</Radio>
        <Radio value={"Angular"}>Angular</Radio>
        <Radio value={"Vue"}>Vue</Radio>
        <Radio value={"SolidJS"}>SolidJS</Radio>
        <Radio value={"Svelte"}>Svelte</Radio>
      </RadioGroup>
    </div>
  );
}

垂直方向

使用 defaultValue 属性来控制默认选定的单选项目

import { Radio, RadioGroup } from "@resolid/react-ui";

export default function App() {
  return (
    <RadioGroup name={"frameworksRadioGroup"} orientation={"vertical"} className={"gap-3"}>
      <Radio value={"React"}>React</Radio>
      <Radio value={"Angular"}>Angular</Radio>
      <Radio value={"Vue"}>Vue</Radio>
      <Radio value={"SolidJS"}>SolidJS</Radio>
      <Radio value={"Svelte"}>Svelte</Radio>
    </RadioGroup>
  );
}

属性

RadioGroup

属性color简介

颜色

类型"primary" | "secondary" | "success" | "warning" | "danger" | "neutral"默认值"primary"必须false
属性size简介

大小

类型"xs" | "sm" | "md" | "lg" | "xl"默认值"md"必须false
属性orientation简介

方向

类型"horizontal" | "vertical"默认值'horizontal'必须false
属性value简介

可控值

类型string | number默认值-必须false
属性defaultValue简介

默认值

类型string | number默认值-必须false
属性onChange简介

onChange 回调

类型((value: string | number) => void)默认值-必须false
属性name简介

字段的名称

类型string默认值-必须false
属性disabled简介

是否禁用

类型boolean默认值false必须false
属性required简介

是否必选

类型boolean默认值false必须false
属性readOnly简介

是否只读

类型boolean默认值false必须false
属性invalid简介

是否无效

类型boolean默认值false必须false

Radio

属性color简介

颜色

类型"primary" | "secondary" | "success" | "warning" | "danger" | "neutral"默认值"primary"必须false
属性size简介

大小

类型"xs" | "sm" | "md" | "lg" | "xl"默认值"md"必须false
属性spacing简介

间距

类型string | number默认值"0.5em"必须false
属性value简介

类型string | number默认值-必须true
属性disabled简介

是否禁用

类型boolean默认值false必须false

建议更改此页面