Checkbox 多选组件

作为基础多选组件 Checkbox 封装 <Input type="checkbox" /> 组件

示例

代码节选自:yis-demo/src/pages/components/checkbox/index.js
export default class CheckboxDemo extends PageCore{
    state = {
        checkboxValue: ["12"]
    };

    handleCheckboxChange = value => {
        const age = new Set(this.state.checkboxValue);
        age.has(value) ? age.delete(value) : age.add(value);
        this.setState({
            checkboxValue: [...age]
        });
    };
    render() {
        return (
            <Page>
                <Checkbox
                    value="12"
                    label="12"
                    onChange={this.handleCheckboxChange}
                    checked={this.checkboxChecked("12")}
                    className='test'
                />
                <Checkbox
                    value="13"
                    label="13"
                    onChange={this.handleCheckboxChange}
                    checked={this.checkboxChecked("13")}
                />
            </Page>
        )
    }
}

样式参数

    --checkbox-color: rgb(234, 234, 234);
    --checkbox-checked-color: var(--color-primary-main);
    --checkbox-disabled-color: rgb(229, 229, 234);

    --checkbox-field-margin-bottom: calc(0.5 * var(--checkbox-size));
    --checkbox-size: calc(2.2 * var(--unit));
    --checkbox-text-color: var(--font-color-main-dark);
    --checkbox-text-font-size: var(--font-size-title);
    --checkbox-transition-duration: 0.2s;

参数

参数名 类型 必选 默认值 描述
label string 内容
checked boolean × false 选中状态
children string × label 中包裹
className string × 根节点附加类名
disabled boolean × 禁止操作
name string , number × input name 属性
onChange function × 切换触发
ripple boolean × true 水波纹效果

CheckboxGroup 组件

作为 checkbox 组件的封装,方便业务开发者渲染一组 checkbox。

代码节选自:yis-demo/src/pages/components/radiocheckbox/index.js
export default class Form extends PageCore{
    data = [
        {
            label: "xinyue",
            value: "xinyue"
        },
        {
            label: "eva.li",
            value: "eva.li"
        },
        {
            label: "luoluo",
            value: "luoluo"
        }
    ];
    state = {
        checkboxGroupValue: []
    };

    render() {
        return (
            <Page>
                <CheckboxGroup
                    data={this.data}
                    name="checkboxGroup"
                    onChange={val => {
                        this.setState({
                            checkboxGroupValue: val
                        });
                    }}
                    value={this.state.checkboxGroupValue}
                />
            </Page>
        )
    }
}

参数

参数名 类型 必选 默认值 描述
data Array<{value, label, disabled}> 渲染 checkbox 的 内容
onChange function 切换回调 参数为 已经选中的 value 值
value Array 选中的 value 值数组
name string input 组件上 name 属性
className string × 根节点类名