andt多选框(选择x个之后禁用)

const [data, setData] = useState([
   	{ id: 0, name: '小说', disabled: false },
    { id: 1, name: '科幻', disabled: false },
    { id: 2, name: '植物', disabled: false },
    { id: 3, name: '动漫', disabled: false },
    { id: 4, name: '动物', disabled: false },
    { id: 5, name: '玄幻', disabled: false },
])
<Checkbox.Group onChange={onChange}>
   <Row>
        {
            data.map(v => {
                return (
                    <Col span={8} key={v.id}>
                        <Checkbox
                            value={v.name}
                            style={{
                                lineHeight: "32px",
                            }}
                            disabled={v.disabled}
                        >
                            {v.name}
                        </Checkbox>
                    </Col>
                )
            })
        }
    </Row>
</Checkbox.Group>


const onChange = opt => {
    let arr = []
    if (opt.length === 3) {
        arr = data.map(v => {
            if (!opt.includes(v.name)) {
                v.disabled = true
                return v
            }
            return v
        })
    } else {
        arr = data.map(v => {
            v.disabled = false
            return v
        })
    }
    setData(arr)
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值