mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-21 04:48:02 +08:00
7a521ab908
Co-authored-by: afc163 <afc163@gmail.com>
94 lines
3.2 KiB
Markdown
94 lines
3.2 KiB
Markdown
---
|
||
category: Components
|
||
group: 数据录入
|
||
title: Checkbox
|
||
subtitle: 多选框
|
||
description: 收集用户的多项选择。
|
||
cover: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*DzgiRbW3khIAAAAAAAAAAAAADrJ8AQ/original
|
||
coverDark: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*G3MjTYXL6AIAAAAAAAAAAAAADrJ8AQ/original
|
||
demo:
|
||
cols: 2
|
||
---
|
||
|
||
## 何时使用
|
||
|
||
- 在一组可选项中进行多项选择时;
|
||
- 单独使用可以表示两种状态之间的切换,和 `switch` 类似。区别在于切换 `switch` 会直接触发状态改变,而 `checkbox` 一般用于状态标记,需要和提交操作配合。
|
||
|
||
## 代码演示
|
||
|
||
<!-- prettier-ignore -->
|
||
<code src="./demo/basic.tsx">基本用法</code>
|
||
<code src="./demo/disabled.tsx">不可用</code>
|
||
<code src="./demo/controller.tsx">受控的 Checkbox</code>
|
||
<code src="./demo/group.tsx">Checkbox 组</code>
|
||
<code src="./demo/check-all.tsx">全选</code>
|
||
<code src="./demo/layout.tsx">布局</code>
|
||
<code src="./demo/debug-line.tsx" debug>同行布局</code>
|
||
<code src="./demo/debug-disable-popover.tsx" debug>禁用下的 Tooltip</code>
|
||
<code src="./demo/custom-line-width.tsx" debug>自定义 lineWidth</code>
|
||
|
||
## API
|
||
|
||
通用属性参考:[通用属性](/docs/react/common-props)
|
||
|
||
#### Checkbox
|
||
|
||
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
||
| --- | --- | --- | --- | --- |
|
||
| autoFocus | 自动获取焦点 | boolean | false | |
|
||
| checked | 指定当前是否选中 | boolean | false | |
|
||
| defaultChecked | 初始是否选中 | boolean | false | |
|
||
| disabled | 失效状态 | boolean | false | |
|
||
| indeterminate | 设置 indeterminate 状态,只负责样式控制 | boolean | false | |
|
||
| onChange | 变化时的回调函数 | (e: CheckboxChangeEvent) => void | - | |
|
||
| onBlur | 失去焦点时的回调 | function() | - | |
|
||
| onFocus | 获得焦点时的回调 | function() | - | |
|
||
|
||
#### Checkbox Group
|
||
|
||
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
||
| --- | --- | --- | --- | --- |
|
||
| defaultValue | 默认选中的选项 | (string \| number)\[] | \[] | |
|
||
| disabled | 整组失效 | boolean | false | |
|
||
| name | CheckboxGroup 下所有 `input[type="checkbox"]` 的 `name` 属性 | string | - | |
|
||
| options | 指定可选项 | string\[] \| number\[] \| Option\[] | \[] | |
|
||
| value | 指定选中的选项 | (string \| number \| boolean)\[] | \[] | |
|
||
| onChange | 变化时的回调函数 | (checkedValue: T[]) => void | - | |
|
||
|
||
##### Option
|
||
|
||
```typescript
|
||
interface Option {
|
||
label: string;
|
||
value: string;
|
||
disabled?: boolean;
|
||
}
|
||
```
|
||
|
||
### 方法
|
||
|
||
#### Checkbox
|
||
|
||
| 名称 | 描述 | 版本 |
|
||
| ------------- | ------------------------- | ------ |
|
||
| blur() | 移除焦点 | |
|
||
| focus() | 获取焦点 | |
|
||
| nativeElement | 返回 Checkbox 的 DOM 节点 | 5.17.3 |
|
||
|
||
## 主题变量(Design Token)
|
||
|
||
<ComponentTokenTable component="Checkbox"></ComponentTokenTable>
|
||
|
||
## FAQ
|
||
|
||
### 为什么在 Form.Item 下不能绑定数据?
|
||
|
||
Form.Item 默认绑定值属性到 `value` 上,而 Checkbox 的值属性为 `checked`。你可以通过 `valuePropName` 来修改绑定的值属性。
|
||
|
||
```tsx | pure
|
||
<Form.Item name="fieldA" valuePropName="checked">
|
||
<Checkbox />
|
||
</Form.Item>
|
||
```
|