vue3中使用cascader级联选择器

文章讲述了在Vue3使用组合式API时,如何处理后台返回的数据并将其正确绑定到级联选择器(Cascader)中。作者遇到的问题是数据无法正常显示,通过调试和学习,发现并修复了数据处理和数组叠加的错误,强调了编程时的专注与细心的重要性。
摘要由CSDN通过智能技术生成

我用的是vue3组合式,这里要实现的是如图的效果:

html部分代码如下:

  <div class="part_two">
    <p>操作系统</p>
    <el-cascader :options="sysoptions" v-model="config.imageId" :show-all-levels="false" />
  </div>

后端返回的数据是这样格式的:(这里我就简单把数据格式展示一下了,而且是我有用到的数据,没有截图,反正就照葫芦画瓢吧)

[  
  { 
     id:'',
     name:'',
     images: 
        [ 
         { id:'', name:'' }  
        ] 
  },
  {
     id:'',
     name:'',
     images: 
        [ 
         { id:'', name:'' } 
        ] 
  } 
]

js代码:

const sysoptions = reactive([])// 操作系统的集合(这里已经是空数组了噢~)

// 请求操作系统
function getOperation() {
  const params = { zone_id: config.zoneId, region_id: config.regionId }//传的参数
  sysoptions.length = 0 //数组长度清零(我这里不清零的话数据会叠加)
  service.getOSList(params).then((res) => {
    if (res.code === 0) {
       //把请求到的数据,处理后放入sysoptions数组中(这里一开始写的时候,不小心多包了一层数组,你们写的时候也要认真点噢~)
      sysoptions.push(...res.data.items.map(({ id, name, images }) => (
        {
          value: id,
          label: name,
          //这里注意可别写错了!!!
          children: images.map(({ id, name }) => ({
            value: id,
            label: name
          }))
        }
      )))
    }
    config.imageId = sysoptions[0].children[0].value //设置的默认选中项(这个不一定要有)
  })
}

好像是第一次用到级联选择器,一开始以为很简单,直接套用就可以了,但是写的时候才发现,请求的数据放不进去。显示不出来,就总感觉差那么一点就实现了,然后又百度了看看怎么回事,最后照葫芦画瓢写出来了。

总结一下:照葫芦画瓢的时候也要认真写,不然就容易进到一个迷茫区(我就是这样,搞了几个小时才发现自己的粗心大意,所以写代码的时候一定要专注!!!周一的上午真就是很难专注,唉,我还需要多努力啊)

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值