封装antd switch-group

效果:

代码:

import React from 'react'
import { Switch } from 'antd'

/**
 * switch group 
 * @param {*} object
 *  @oarams func onChange 变化回调
 *  @oarams array dataSource 数据集
 *  @oarams array value 默认值
 *  @oarams string key 主键
 */
const SwitchGroup = ({ onChange, dataSource, value, key }) => {
    const switchChange = (type, preValueArr, val) => {
        let resultArr = preValueArr
        if (val) {
            resultArr.push(type)
        } else {
            preValueArr.includes(type) && resultArr.splice(resultArr.indexOf(type), 1)
        }
        onChange(resultArr);
    }
    let switchTmp = [];
    dataSource.map((item, index) => {
        let isChecked = value.includes(item[key]);
        switchTmp.push(<Switch
            key={"switch" + index}
            style={{ margin: "0 4px" }}
            checkedChildren={item.name}
            unCheckedChildren={item.name}
            onChange={switchChange.bind(this, item[key], value)}
            checked={isChecked}
        />);
    });
    return switchTmp;
}
export default SwitchGroup;

使用:

<Form.Item label="作品标签" required>
    <RenderSwitch value={projectTags} dataSource={tags} onChange={this.handleSwitchChange} key="id" />
</Form.Item>

作用:

数据集格式完全可以使用select数据格式,对于数据量较少的多选来说较为美观

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值