radio单选改为可反选(不选)

   <div
      className="za-group-radio"
      style={style}
      onClick={(e: any) => {
        if (value && e.target?.value === value) {
          // Radio单选取消
          onChange && onChange('');
          e.stopPropagation();
        }
      }}
    >
      <Radio.Group onChange={onRadioChange} value={value}>
        {options.map(r => (
          <Radio value={r[valueName]} key={r[valueName]}>
            {r[labelName]}
          </Radio>
        ))}
      </Radio.Group>
    </div>

单选的再次点击并不会触发onChange事件

那在最外层包裹一个div就好啦  拿到所有点击并赋值  so easy!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现 Vant 框组的全功能,你可以使用 v-model 来绑定中的值,然后通过控制中值的变化来实现全。 首先,你需要在组件中定义一个数组来存储中的值,例如: ```javascript data() { return { options: ['option1', 'option2', 'option3'], selectedOptions: [] } } ``` 接下来,你可以使用 Vant 的框组组件来显示项,并将中的值与 `selectedOptions` 进行绑定: ```html <van-radio-group v-model="selectedOptions"> <van-cell-group> <van-cell v-for="option in options" :key="option" clickable> <van-radio :name="option" :label="option">{{ option }}</van-radio> </van-cell> </van-cell-group> </van-radio-group> ``` 然后,你可以添加全的按钮,并在点击事件中修改 `selectedOptions` 的值来实现全的功能: ```html <van-button type="primary" @click="selectAll">全</van-button> <van-button type="primary" @click="invertSelection"></van-button> ``` ```javascript methods: { selectAll() { this.selectedOptions = this.options.slice(); }, invertSelection() { this.selectedOptions = this.options.filter(option => !this.selectedOptions.includes(option)); } } ``` 这样,当你点击 "全" 按钮时,所有项都会被中;当你点击 "" 按钮时,已中的项会被取消中,未中的项会被中。 请注意,以上代码示例假设你已经正确引入了 Vant 组件,并在 Vue 实例中注册了相应的组件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值