• Vant React

Checkbox 复选框

介绍

在一组备选项中进行多选。

引入

import { Checkbox } from "@taroify/core"

代码演示

基础用法

通过 checked 绑定复选框的勾选状态。

<Checkbox>复选框</Checkbox>

禁用状态

通过设置 disabled 属性可以禁用复选框。

<Checkbox disabled checked={false}>复选框</Checkbox>
<Checkbox disabled checked>复选框</Checkbox>

自定义形状

shape 属性设置为 square,复选框的形状会变成方形。

<Checkbox shape="square">自定义形状</Checkbox>

自定义颜色

通过 css 设置选中状态的图标颜色。

<Checkbox className="custom-color">
  自定义颜色
</Checkbox>
.custom-color {
  --checkbox-checked-icon-border-color: #ee0a24;
  --checkbox-checked-icon-background-color: #ee0a24;
}

自定义大小

通过 size 属性可以自定义图标的大小。

<Checkbox size={24}>自定义大小</Checkbox>

自定义图标

通过 icon 属性自定义图标。

function CheckboxWithCustomIcon() {
  const [value, setValue] = useState(false)

  return (
    <Checkbox
      icon={
        <Image
          src={`https://img.yzcdn.cn/vant/user-${value ? "active" : "inactive"}.png`}
          style={{
            width: "25px",
            height: "20px",
          }}
        />
      }
      checked={value}
      onChange={setValue}
    >
      自定义图标
    </Checkbox>
  )
}

复选框组

复选框可以与复选框组一起使用,复选框组通过 value 数组绑定复选框的勾选状态。

<Checkbox.Group>
  <Checkbox name="a">复选框 a</Checkbox>
  <Checkbox name="b">复选框 b</Checkbox>
</Checkbox.Group>

水平排列

direction 属性设置为 horizontal 后,复选框组会变成水平排列。

<Checkbox.Group direction="horizontal">
  <Checkbox name="a">复选框 a</Checkbox>
  <Checkbox name="b">复选框 b</Checkbox>
</Checkbox.Group>

限制最大可选数

通过 max 属性可以限制复选框组的最大可选数。

<Checkbox.Group max={2}>
  <Checkbox name="a">复选框 a</Checkbox>
  <Checkbox name="b">复选框 b</Checkbox>
  <Checkbox name="c">复选框 c</Checkbox>
</Checkbox.Group>

搭配单元格组件使用

此时你需要再引入 CellCell.Group 组件,并通过 Checkbox 实例上的 toggle 方法触发切换。

<Checkbox.Group max={2}>
  <Cell.Group clickable>
    <Cell title="复选框 a">
      <Checkbox name="a" />
    </Cell>
    <Cell title="复选框 b">
      <Checkbox name="b" />
    </Cell>
  </Cell.Group>
</Checkbox.Group>

API

Checkbox Props

参数说明类型默认值
defaultChecked默认是否为选中状态booleanfalse
checked是否为选中状态booleanfalse
name标识符any-
shape形状,可选值为 squarestringround
disabled是否禁用复选框booleanfalse
size图标大小,默认单位为 pxnumber | string20px

CheckboxGroup Props

参数说明类型默认值
defaultValue默认所有选中项的标识符any[]-
value所有选中项的标识符any[]-
disabled是否禁用所有复选框booleanfalse
max最大可选数,0 为无限制number | string0
direction排列方向,可选值为 horizontalstringvertical
size所有复选框的图标大小,默认单位为 pxnumber | string20px

Checkbox Events

事件名说明回调参数
onChange当绑定值变化时触发的事件checked: boolean

CheckboxGroup Events

事件名说明回调参数
onChange当绑定值变化时触发的事件names: any[]

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。

名称默认值描述
—checkbox-size20px * $hd-
—checkbox-font-sizevar(—font-size-lg)-
—checkbox-border-colorvar(—gray-5)-
—checkbox-transition-durationvar(—animation-duration-fast)-
—checkbox-gapvar(—padding-sm)-
—checkbox-label-marginvar(—padding-xs)-
—checkbox-label-colorvar(—text-color)-
—checkbox-label-line-heightvar(—checkbox-size)-
—checkbox-disabled-label-colorvar(—gray-5)-
—checkbox-icon-font-sizevar(—checkbox-size)-
—checkbox-checked-icon-colorvar(—white)-
—checkbox-checked-icon-border-colorvar(—primary-color)-
—checkbox-checked-icon-background-colorvar(—primary-color)-
—checkbox-disabled-icon-colorvar(—gray-5)-
—checkbox-disabled-icon-border-colorvar(—gray-5)-
—checkbox-disabled-icon-background-colorvar(—border-color)-