Radio 单选组件

基础组件 Radio 封装 <Input type="radio" /> 组件

示例

代码节选自:yis-demo/src/pages/components/radio/index.js
export default class RadioDemo extends PageCore {
    state = {
        value: "open"
    };

    handleChange = value => {
        this.setState({ value });
    };

    render(){
        return(
            <Page>
                <Radio
                    label="开"
                    value="open"
                    name="switch"
                    checked={this.state.value === "open"}
                    onChange={this.handleChange}
                />
                <Radio
                    label="关"
                    value="close"
                    name="switch"
                    onChange={this.handleChange}
                    checked={this.state.value === "close"}
                    disabled
                />
            </Page>
        )
    }
}

样式变量

    --radio-text-color: var(--font-color-main-dark);
    --radio-button-size: calc(2.2 * var(--unit));
    // radio 符号底边距
    --radio-field-margin-bottom: calc(0.5 * var(--radio-button-size));
    // radio 符号与文字中间距离
    --radio-inner-margin: calc(var(--radio-button-size) / 4);
    --radio-color: var(--color-primary-main);
    --radio-disabled-color: rgb(229,229,234);
    --radio-default-color: rgb(229,229,234);
    --radio-text-font-size: var(--font-size-title);

参数

参数名 类型 必选 默认值 描述
label string 说明文本
name string input name 属性
onChange function 切换触发函数
value string , number 对应的值
checked boolean × false 选中状态
className string × 根节点附加类名
disabled boolean × false 禁止操作
ripple boolean × true 水波纹效果 default true

RadioGroup 组件

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

示例

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

    handleChange = value => {
        this.setState({ value });
    };

    render(){
        return(
            <Page>
                <RadioGroup
                    name="name"
                    data={this.data}
                    onChange={this.handleChangeGroup}
                    value={this.state.groupValue}
                />
            </Page>
        )
    }
}

参数

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