跳到主要内容

Bool 布尔值

多种视觉形态的布尔值展示和输入组件。

VEF 特有组件,不属于 Ant Design。

何时使用

  • 在表单或表格中展示或编辑布尔值(true/false)。
  • 希望在不改变数据模型的情况下切换单选、单选按钮、开关或复选框的展示形式。

基础用法

import { Bool } from '@vef-framework-react/components';

export default function Demo() {
return (
<Bool
value={true}
onChange={(val) => console.log(val)}
/>
);
}

默认形态为 "switch"(开关)。

四种形态

import { Bool, Space } from '@vef-framework-react/components';
import { useState } from 'react';

export default function Demo() {
const [val, setVal] = useState(true);

return (
<Space direction="vertical">
<Bool variant="switch" value={val} onChange={setVal} />
<Bool variant="radio" value={val} onChange={setVal} />
<Bool variant="radio-button" value={val} onChange={setVal} />
<Bool variant="checkbox" value={val} onChange={setVal}>
启用功能
</Bool>
</Space>
);
}

自定义标签

<Bool
variant="radio"
value={true}
trueLabel=""
falseLabel=""
onChange={(val) => console.log(val)}
/>

只读展示

// 禁用 + 无 onChange = 只读展示
<Bool value={record.isActive} disabled />

API

属性类型默认值说明
valueboolean受控值
defaultValueboolean初始值(非受控)
variant'switch' | 'radio' | 'radio-button' | 'checkbox''switch'视觉形态
trueLabelReactNode'是'true 状态的标签
falseLabelReactNode'否'false 状态的标签
disabledbooleanfalse禁用交互
size'large' | 'middle' | 'small'组件尺寸
classNamestringCSS 类名
styleCSSProperties内联样式
onChange(value: boolean) => void值变化回调
childrenReactNode标签文字(用于 checkbox 形态)

各形态行为说明

形态true 状态false 状态
switch开关打开,内部显示 trueLabel开关关闭,内部显示 falseLabel
radio第一个单选项选中第二个单选项选中
radio-button第一个按钮激活第二个按钮激活
checkbox勾选未勾选

最佳实践

  • 设置类开关使用 variant="switch"
  • 表单中两个选项都需要可见时使用 variant="radio"variant="radio-button"
  • 行内同意或功能开关使用 variant="checkbox" 配合 children
  • 在表单中使用 form.Field.Bool,自动处理值绑定。