vue3中动态设置ref,如表格中使用级联选择器

需求:vue3中有一个表格,表格里是表单项,用户可以输入或选择,有一项是一个级联选择器,需要使用到ref,然后通过getCheckedNodes()方法获取到这一项选择的数据。

在这里插入图片描述
数据源是一个级联选择器,如果这个表单直接设置 ref是有问题的,选择后,第一次获取返回空,第二次获取的是第一次选择的数据。

在这里插入图片描述
如上图,直接设置ref是不行的,这个ref是需要动态设置才行。思考:直接加上索引不就行了吗?
是的,没错,请看下图这样设置

在这里插入图片描述

记得要定义一下,名字自己随便起,保持一致就行

let multipleTablesCascaderRef = {}

在这里插入图片描述

这样就可以使用ref获取了
在这里插入图片描述

Vue3级联选择器通过v-model绑定一个数组,数组的每一项代表每个级别的选值。如果想要获取每个选项的label值,可以使用ref来获取级联选择器的实例,然后通过调用实例的方法获取选项的label值。具体实现步骤如下: 1. 在template定义级联选择器,并通过v-model绑定选项的数组 ```html <el-cascader v-model="selectedValues" :options="options" @change="handleChange" ref="cascader" ></el-cascader> ``` 2. 在script定义selectedValues数组和options选项列表 ```javascript export default { data() { return { selectedValues: [], options: [ { value: 'zhinan', label: '指南', children: [ { value: 'shejiyuanze', label: '设计原则', children: [ { value: 'yizhi', label: '一致' }, { value: 'fankui', label: '反馈' }, { value: 'xiaolv', label: '效率' }, { value: 'kekong', label: '可控' } ] }, { value: 'daohang', label: '导航', children: [ { value: 'cexiangdaohang', label: '侧向导航' }, { value: 'dingbudaohang', label: '顶部导航' } ] } ] } ] } }, methods: { handleChange(value) { // 获取级联选择器实例 const cascader = this.$refs.cascader // 遍历选项数组,获取每个选项的label值 const labels = value.map((item, index) => { const selectedOption = cascader.options[index].children.find( child => child.value === item ) return selectedOption.label }) console.log(labels) } } } ``` 3. 在handleChange方法,首先通过ref获取级联选择器的实例,然后遍历选项数组,通过选项的value值在options查找对应的选项对象,最后获取选项对象的label值,将label值存储在labels数组。 注意:在获取级联选择器实例时,需要给级联选择器添加ref属性,然后通过this.$refs.cascader来获取实例。在遍历选项数组时,需要根据选项在options的位置,找到对应的选项对象,再从选项对象获取label值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值