select复选框只能添加不能删除值

需求:产品的要求是,该复选框可以增加企业但是不能删除企业。所以只能添加不能删除。

                        <Select
                            showSearch
                            allowClear={false} //不允许全部清除
                            placeholder="请选择"
                            mode={"multiple"}
                            value={EntValue}
                            
                        >
                            { EntList  || []).map((item, index) =>
                                <Select.Option
                                    key={item.EntId}
                                    value={JSON.stringify(item)} //因为数组内是对象,要转化为字符串
                                    label={item.EntShortName}
                                    disabled={this.showDeselect(item)} //将已经选过的值更新disabled为true
                                >
                                    {item.EntShortName}
                                </Select.Option>)}
                        </Select>

const EntList  =[
  {
    "EntId": 3,
    "EntShortName": "电子",
    "RcrtQuotaIds": [
      419686
    ],
  },
  {
    "EntId": 131,
    "EntShortName": "龙腾",
    "RcrtQuotaIds": [
      419685
    ],
  },
  {
    "EntId": 201,
    "EntShortName": "小明",
    "RcrtQuotaIds": [
      419684
    ],
  },
  {
    "EntId": 10022,
    "EntShortName": "华南",
    "RcrtQuotaIds": [
      419680
    ],
  }
]

showDeselect = (item)=>{
        const {view:{EntValue}}= this.props.Store;
        const newEntValue = JSON.parse(JSON.stringify(toJS(EntValue)))
        const array = newEntValue .map((item)=> JSON.parse(item));//多选的值,因为赋值时有JSON.stringfy操作,所以这里再改为对象
        // 需要注意的是,因为我这边的item是一个对象,所以用了find相同的EntId做判断,如果是基本数据类型,可以直接用includes判断。includes是判断数组内的每个值是否与比较值全等,所以对象是用不了includes的。
        if(array.find(i=>i.EntId === item.EntId))return true;
        else return false
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值