解决 el-switch 只能点击一次

出现问题
当我在表格里使用el-switch,每次都是点击一次后就不能点击了。
我是这么写的:

<template>
  <el-switch v-model="value" active-color="#579ef8" inactive-color="#ccc"></el-switch>
</template>

data(){
  return {
    value: true
  }
}

然后我充满疑问对value进行了一个监听,这里我用的是 watch:

watch: {
  value: {
    handler: function (oldVal, newVal) {
      console.log(oldVal, newVal);
    },
    immediate:true
  },
}

然后发现监听的结果是这样的:
在这里插入图片描述
第二次点击的时候switch并不会从false状态变成true状态,之后继续点击也不会触发value改变了。
解决方法
这是因为我们的template没有设置slot-scope=“scope”!!!加上就好了!!!

<template slot-scope="scope">
  <el-switch v-model="scope.row.statusVal" active-color="#579ef8" inactive-color="#ccc"></el-switch>
</template>

原因
element-UI 官方文档里有一句话,看!
在这里插入图片描述

通过 Scoped slot 可以获取到 row, column, $index 和 store(table 内部的状态管理)的数据。
所以说我们刚刚根本就没有获取到table内部的状态管理???
我们只是把this.value改变了!!
所以表格内部那个switch我们的v-model=“value”,按照刚刚设定的value: true来说:

switch中的value data中的value
初始值
| 初始值 | true | true |
|----------|-------| ----- |
| 第一次点击 | false | false |
| 第二次点击 | false | true |

具体原因等我学一下。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值