CheckboxGroup 复选框组
用于管理多项复选框选择的 CheckboxGroup 组件。
引入
import { CheckboxGroup, Checkbox, Label, Description } from '@heroui/react';用法
选择你的兴趣可多选
import {Checkbox, CheckboxGroup, Description, Label} from "@heroui/react";
export function Basic() {
return (
<CheckboxGroup name="interests">组件结构
导入 CheckboxGroup 组件,并通过点语法访问所有子部分。
import {CheckboxGroup, Checkbox, Label, Description, FieldError} from '@heroui/react';
export default () => (
<CheckboxGroup name="interests">
<Label />
<Description /> {/* Optional */}
<Checkbox value="option1">
<Checkbox.Control>
<Checkbox.Indicator />
</Checkbox.Control>
<Checkbox.Content>
<Label />
<Description /> {/* Optional */}
</Checkbox.Content>
</Checkbox>
<FieldError /> {/* Optional */}
</CheckboxGroup>
);在 Surface 内
置于 Surface 中时,使用 variant="secondary",以应用适合表面背景的低强调变体。
选择你的兴趣可多选
import {Checkbox, CheckboxGroup, Description, Label, Surface} from "@heroui/react";
export function OnSurface() {
return (
<Surface className="w-full rounded-3xl p-6">自定义指示器
功能选择你需要的功能
"use client";
import {Checkbox, CheckboxGroup, Description, Label} from "@heroui/react";
export function WithCustomIndicator() {不定状态
编程
设计
写作
"use client";
import {Checkbox, CheckboxGroup, Label} from "@heroui/react";
import {useState} from "react";
受控
你的技能 已选:coding, design
编程
设计
写作
"use client";
import {Checkbox, CheckboxGroup, Label} from "@heroui/react";
import {useState} from "react";
校验
"use client";
import {Button, Checkbox, CheckboxGroup, FieldError, Form, Label} from "@heroui/react";
export function Validation() {禁用
功能功能选择暂时不可用
功能一该功能即将推出
功能二该功能即将推出
import {Checkbox, CheckboxGroup, Description, Label} from "@heroui/react";
export function Disabled() {
return (
<CheckboxGroup isDisabled name="disabled-features">特性与附加示例
通知偏好选择接收更新的方式
邮件通知通过邮件接收更新
短信提醒即时短信通知
推送通知浏览器与移动端推送提醒
import {Bell, Comment, Envelope} from "@gravity-ui/icons";
import {Checkbox, CheckboxGroup, Description, Label} from "@heroui/react";
import clsx from "clsx";
export function FeaturesAndAddOns() {自定义渲染函数
选择你的兴趣可多选
编程热爱构建软件
设计喜欢打造精美界面
写作热衷于内容创作
"use client";
import {Checkbox, CheckboxGroup, Description, Label} from "@heroui/react";
export function CustomRenderFunction() {样式
传入 Tailwind CSS 类
你可以自定义 CheckboxGroup 组件:
import { CheckboxGroup, Checkbox, Label } from '@heroui/react';
function CustomCheckboxGroup() {
return (
<CheckboxGroup className="gap-4" name="custom">
<Checkbox value="option1">
<Checkbox.Control className="border-2 border-purple-500 data-[selected=true]:bg-purple-500">
<Checkbox.Indicator className="text-white" />
</Checkbox.Control>
<Checkbox.Content>
<Label>Option 1</Label>
</Checkbox.Content>
</Checkbox>
</CheckboxGroup>
);
}自定义组件类
若要自定义 CheckboxGroup 组件类,可以使用 @layer components 指令。
了解更多.
@layer components {
.checkbox-group {
@apply flex flex-col gap-2;
}
}HeroUI 遵循 BEM 方法论,确保组件变体与状态可复用且易于自定义。
CSS 类
CheckboxGroup 组件使用以下 CSS 类(查看源码样式):
.checkbox-group- 复选框组合容器基础样式
API 参考
CheckboxGroup Props
| Prop | 类型 | 默认值 | 描述 |
|---|---|---|---|
value | string[] | - | 当前选中值(受控) |
defaultValue | string[] | - | 默认选中值(非受控) |
onChange | (value: string[]) => void | - | 选中值变化时调用的处理函数 |
isDisabled | boolean | false | 是否禁用整个复选框组合 |
isRequired | boolean | false | 是否必填 |
isReadOnly | boolean | false | 是否只读 |
isInvalid | boolean | false | 是否处于无效状态 |
name | string | - | 提交 HTML 表单时复选框组合的名称 |
children | React.ReactNode | (values: CheckboxGroupRenderProps) => React.ReactNode | - | 复选框组合内容或渲染 prop |
render | DOMRenderFunction<keyof React.JSX.IntrinsicElements, CheckboxGroupRenderProps> | - | 通过自定义渲染函数覆盖默认的 DOM 元素。 |
CheckboxGroupRenderProps
使用渲染 prop 模式时,会提供以下值:
| Prop | 类型 | 描述 |
|---|---|---|
value | string[] | 当前选中值 |
isDisabled | boolean | 是否禁用 |
isReadOnly | boolean | 是否只读 |
isInvalid | boolean | 是否处于无效状态 |
isRequired | boolean | 是否必填 |





