解决vue + element Cascader级联选择器最后一级出现 暂无数据的问题

项目问题场景:

在使用element组件Cascader 级联选择器中,请求后台数据时,总会在最后一个出现暂无数据,导致选中不了。
在这里插入图片描述


解决方案:

这里有两种解决方案
一、使用递归方式,把最后的children设为undefined

// 渲染spu树
Spugoods(){
  Tree().then((res)=> {
    if(res.data.errmsg == '成功'){
      this.categorygoods = this.getTreeData(res.data.data)
    }
  }).catch(function (error) {
    console.log(error);
  });
},
 // 递归判断列表,把最后的children设为undefined
getTreeData(data){
  for(var i=0;i<data.length;i++){
    if(data[i].children.length<1){
      // children若为空数组,则将children设为undefined
      data[i].children=undefined;
    }else {
      // children若不为空数组,则继续 递归调用 本方法
      this.getTreeData(data[i].children);
    }
  }
  return data;
},

二、使用map方法

// 渲染spu树
Spugoods(){
  Tree().then((res)=> {
    if(res.data.errmsg == '成功'){
      this.categorygoods = this.getTreeData(res.data.data)
    }
  }).catch(function (error) {
    console.log(error);
  });
},
getTreeData(datas) {
   let data = [];
   datas.map((item) => {
     if (item.children.length > 0) {
       let dadax = {
         id: item.id,
         label: item.label,
         value: item.value,
         children: this.getTreeData(item.children),
       };
       data.push(dadax);
     } else {
       let dadax = {
         id: item.id,
         label: item.label,
         value: item.value,
       };
       data.push(dadax);
     }
     return data;
   });
   return data;
 },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值