Checkbox.tsx

Checkbox.tsx

基本信息

  • 类型: React 组件 (shadcn/ui)
  • 路径: ./src/components/ui/checkbox.tsx

功能描述

复选框组件,用于选择/取消选择选项。基于 Radix UI,支持无障碍访问和键盘操作。

导出内容

  • Checkbox - 复选框组件

Props 接口

Checkbox

属性类型必填默认值说明
classNamestring-自定义CSS类名
checked`boolean \'indeterminate'`-选中状态
defaultCheckedboolean-默认选中状态
onCheckedChange`(checked: boolean \'indeterminate') => void`-状态变化回调
disabledboolean-是否禁用
...propsReact.ComponentProps<typeof CheckboxPrimitive.Root>-Radix UI Checkbox 属性

依赖

  • @radix-ui/react-checkbox - Radix UI 复选框原语
  • lucide-react - 图标库 (CheckIcon)
  • @/lib/utils - 工具函数 (cn)

使用示例

import { Checkbox } from "@/components/ui/checkbox";
import { useState } from "react";

// 受控组件
const [checked, setChecked] = useState(false);
<Checkbox 
  checked={checked} 
  onCheckedChange={setChecked} 
/>

// 非受控组件
<Checkbox defaultChecked />

// 带标签
<div className="flex items-center space-x-2">
  <Checkbox id="terms" />
  <label htmlFor="terms" className="text-sm">
    我同意服务条款
  </label>
</div>

// 禁用状态
<Checkbox disabled />
<Checkbox disabled checked />
← 返回目录