antd Select 多选 限制只选中三个

本文档探讨了如何使用Ant Design的Select组件实现多选模式,并限制用户只能选择三个选项。通过设置`value`属性来处理初始反显及变更时的值更新。在`SelectChange`方法中检查选择数量,当超过限制时给出警告。问题在于如何正确处理反显和限制选择数量的逻辑。
摘要由CSDN通过智能技术生成

antd Select 多选 限制只选中三个
支持默认反显

zclxbq:['..', '..', '..']// 最开始用于反显的数组
                                          <Select
                                         className='basic'
                                         placeholder='请选择'
                                         allowClear
                                         mode='multiple'
                                         onDropdownVisibleChange={open => {
                                           this.setState({ isChoiceCp: open })
                                           console.log(open)
                                         }}
                                         style={{ width: 380 }}
                                         //  defaultValue={this.state.zclxbq}
                                         value={this.state.zclxbq}
                                         onChange={(value, option) => { this.SelectChange(value, option) }}
                                       >
                                         {
                                           this.state.bqList.map(item => {
                                             return (
                                               <Select.Option key={item.sticherId} value={item.sticher}>{item.sticher}</Select.Option>
                                             )
                                           })
                                         }
                                       </Select>

其中,限制选择三个,写在SelectChange方法中

    // 获取到选择的设备类型
    SelectChange = async(value, option) => {
      if (option) {
        if (value.length > 3) {
          message.destroy()
          message.warn('最多选择3个标签')
          return
        }
        console.log('选择的', value, value.join(','))
        this.setState({zclxbq: value})  // 更新value
        await this.setState({lxbq: value.join(';')})
      }
    }

其中的问题就是,刚开始反显用的是defaultValue来处理,发现行不通。后来尝试直接赋值,用value来处理,同时满足反显以及当选中三个之后,限制其不再选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值