使用高级 Chakra UI 组件,更快地构建 💎

了解更多
跳过内容
文档演练场指南博客
赞助

Radio

用于从多个选项中选择一个选项

StorybookRecipeArk

用法

import { RadioGroup } from "@chakra-ui/react"
<RadioGroup.Root>
  <RadioGroup.Item>
    <RadioGroup.ItemHiddenInput />
    <RadioGroup.ItemIndicator />
    <RadioGroup.ItemText />
  </RadioGroup.Item>
</RadioGroup.Root>
信息
如果您喜欢封闭的组件组合,请查看下面的代码片段

示例

受控

valueonValueChange 属性传递给 RadioGroup.Root 组件,以控制所选的单选按钮。

颜色

colorPalette 属性传递给 RadioGroup.Root 组件,以更改组件的配色方案。

绿

青色

尺寸

size 属性传递给 RadioGroup.Root 组件,以更改单选按钮组件的尺寸。

变体

variant 属性传递给 RadioGroup.Root 组件,以更改单选按钮组件的外观。

禁用

disabled 属性传递给 RadioGroup.Item 组件,以禁用该单选按钮。

Hook Form

使用 react-hook-form 中的 Controller 组件在表单中控制单选按钮组

选择值

封闭组件

以下是为封闭组件组合设置 Radio 的方法。

import { RadioGroup as ChakraRadioGroup } from "@chakra-ui/react"
import * as React from "react"

export interface RadioProps extends ChakraRadioGroup.ItemProps {
  rootRef?: React.RefObject<HTMLDivElement | null>
  inputProps?: React.InputHTMLAttributes<HTMLInputElement>
}

export const Radio = React.forwardRef<HTMLInputElement, RadioProps>(
  function Radio(props, ref) {
    const { children, inputProps, rootRef, ...rest } = props
    return (
      <ChakraRadioGroup.Item ref={rootRef} {...rest}>
        <ChakraRadioGroup.ItemHiddenInput ref={ref} {...inputProps} />
        <ChakraRadioGroup.ItemIndicator />
        {children && (
          <ChakraRadioGroup.ItemText>{children}</ChakraRadioGroup.ItemText>
        )}
      </ChakraRadioGroup.Item>
    )
  },
)

export const RadioGroup = ChakraRadioGroup.Root

如果您想自动将封闭组件添加到项目中,请运行此命令

npx @chakra-ui/cli snippet add radio

以下是使用方法

<RadioGroup>
  <Radio />
</RadioGroup>

属性

属性默认值类型
colorPalette 'gray'
'gray' | 'red' | 'orange' | 'yellow' | 'green' | 'teal' | 'blue' | 'cyan' | 'purple' | 'pink'

组件的配色方案

variant 'solid'
'outline' | 'subtle' | 'solid'

组件的变体样式

size 'md'
'xs' | 'sm' | 'md' | 'lg'

组件的尺寸

asChild
boolean

使用提供的子元素作为默认渲染元素,结合它们的属性和行为。

有关更多详细信息,请阅读我们的 组合 指南。
defaultValue
string

单选按钮组首次渲染时的初始值。当您不需要控制单选按钮组的状态时使用。

disabled
boolean

如果为 `true`,则单选按钮组将被禁用

form
string

底层输入的关联表单。

id
string

机器的唯一标识符。

ids
Partial<{ root: string label: string indicator: string item(value: string): string itemLabel(value: string): string itemControl(value: string): string itemHiddenInput(value: string): string }>

单选按钮中元素的 ID。对于组合非常有用。

name
string

单选按钮中输入字段的名称(对于表单提交很有用)。

onValueChange
(details: ValueChangeDetails) => void

选中单选按钮时调用的函数

orientation
'horizontal' | 'vertical'

单选按钮组的方向

readOnly
boolean

单选按钮是否只读

value
string

选中的单选按钮的值

上一个

Radio Card

下一个

Rating