Skip to content

Radio 单选框

用于在一组互斥选项中选择一个。

基础用法

配合 RadioGroup 实现单选组合。

tsx
import { Radio, RadioGroup } from '@airo-ui/react'

function Demo() {
  return (
    <RadioGroup defaultValue="apple">
      <Radio value="apple" label="苹果" />
      <Radio value="banana" label="香蕉" />
      <Radio value="orange" label="橙子" />
    </RadioGroup>
  )
}

受控与非受控

tsx
import { useState } from 'react'
import { Radio, RadioGroup } from '@airo-ui/react'

function ControlledDemo() {
  const [value, setValue] = useState<string | number | boolean>('apple')

  return (
    <RadioGroup value={value} onChange={setValue}>
      <Radio value="apple" label="苹果" />
      <Radio value="banana" label="香蕉" />
      <Radio value="orange" label="橙子" />
    </RadioGroup>
  )
}

function UncontrolledDemo() {
  return (
    <RadioGroup defaultValue="banana" name="fruit">
      <Radio value="apple" label="苹果" />
      <Radio value="banana" label="香蕉" />
      <Radio value="orange" label="橙子" />
    </RadioGroup>
  )
}

禁用

tsx
import { Radio, RadioGroup } from '@airo-ui/react'

// 禁用整个组合
function GroupDisabled() {
  return (
    <RadioGroup defaultValue="apple" disabled>
      <Radio value="apple" label="苹果" />
      <Radio value="banana" label="香蕉" />
    </RadioGroup>
  )
}

// 禁用单个选项
function ItemDisabled() {
  return (
    <RadioGroup defaultValue="apple">
      <Radio value="apple" label="苹果" />
      <Radio value="banana" label="香蕉" disabled />
    </RadioGroup>
  )
}

API

Radio Props

名称类型默认值说明
checkedboolean受控模式选中状态
defaultCheckedbooleanfalse非受控模式默认选中状态
valuestring | number | boolean选项值(必填)
disabledbooleanfalse是否禁用
labelstring标签文本
namestring原生 name 属性
childrenReactNode子内容
onChange(value: RadioValue) => void选中状态变化时触发

RadioGroup Props

名称类型默认值说明
valueRadioValue受控模式选中值
defaultValueRadioValue非受控模式默认选中值
namestring原生 name 属性
disabledbooleanfalse是否禁用整个组合
childrenReactNode子内容
onChange(value: RadioValue) => void选中值变化时触发

MIT License