element-plus tree树形控件无法获取子节点解决办法(已解决)

在Vue3项目中,使用组合式API获取树形控件的子组件ID遇到问题,官方方法无法使用。通过监听check事件,利用checkChange回调的node.checkedKeys获取选中子节点ID,过滤出需要的数据。在折叠面板变化时,清空临时数组以保持最新状态的tree树数据。

这是树形控件  要怎么获取子组件id呢

 

 看官网介绍这些个方法都是可以用的但是笔主用vue3的组合式api获取dom时

这也方法都显示不存在

只能另辟它经

 

找了好久的解决办法:

利用事件中的checked 方法

 

思路:通过check会返回两个回调参数(data,node)

通过node.checkedKeys我们可以的到所有被选中子节点的id

<script>
let Ary = [] //定义一个中间数组来存放筛选出来的数据
//这里全选的话一个有1-28个数其中1-7是父节点我们不需要筛选掉
const checkChange = (a, b) => {
  let childerenArray = []
  b.checkedKeys.forEach(item=>{
    if (!(parseInt(item) in childerenArray)) {
      if (parseInt(item)>6){
        childerenArray.push(parseInt(item))
      }
    }
  })
  console.log(childerenArray)
  Ary = childerenArray
}
</scipit>

 这样就可以拿到id了

当然还有一个bug这样做,就是当折叠面板变化的时候这个中间数组的值并没有变,所有要做的是

通过这个change事件把这个临时数组 Ary=[]等于一个空数组

这样每次折叠面板改变后就依然是新的tree树

 完美解决 撒花!!!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值