el-cascader 级联选择器-选中关闭面板

本文讲述了如何在Vue中正确引用Cascader组件并设置其dropDownVisible状态。作者分享了在组件内部引用$refs的技巧,以及在change事件中控制下拉面板显示的问题解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

组件代码

<el-cascader ref="cascaderRef" v-else-if="item.type === 'cascader'" v-model="formSearch[item.value]" :options="item.options" :props="{ checkStrictly: true }" @change="cascaderChange"></el-cascader>

打印了发现 this.$refs.cascaderRef 是在数组里面的

所以这样是无效的this.$refs.cascaderRef.dropDownVisible = false
dropDownVisible 依然是 true

在这里插入图片描述

要这样写 this.$refs.cascaderRef[0].dropDownVisible = false

  cascaderChange(e) {
    console.log(e)
    console.log(this.$refs.cascaderRef, 'this.$refs.cascaderRef')
    this.$refs.cascaderRef[0].dropDownVisible = false
  }

状态改变,面板也成功收起来了
在这里插入图片描述

### el-cascader 级联选择器选中父级不生效解决方案 当遇到 `el-cascader` 组件选中父级选项未生效的情况时,通常是因为默认情况下子节点的选择依赖于其父节点的状态。为了允许单独选择父级节点而不必选择所有子节点,可以通过配置特定属性来调整这一行为。 #### 使用 `checkStrictly` 通过设置 `props.checkStrictly = true` 属性,可以解除父子节点之间的强制关联关系,从而使得用户能够独立地选择任何一个级别的项而不需要展开整个路径[^1]: ```html <el-cascader v-model="selectedOptions" :options="options" :props="{ checkStrictly: true }"> </el-cascader> ``` 此设置确保即使选择了某个中间层的节点也不会自动将其后代节点也一并选上,反之亦然。 #### 处理级联面板关闭逻辑 有时,在点击选项之后,如果希望立即隐藏下拉列表,则可以在事件处理函数里手动控制可见性状态。这有助于改善用户体验,尤其是在移动设备上的交互效果更佳[^3]: ```javascript // 假设存在一个名为 myCascader 的 ref 引用指向该组件实例 this.$refs.myCascader.dropDownVisible = false; ``` 上述代码片段展示了如何利用 Vue.js 中的 `$ref` 来访问 DOM 元素或子组件,并调用相应的方法改变界面显示情况。 #### 验证表单字段名称一致性 另外需要注意的是,对于表单项而言,确保用于验证的数据模型键名与实际使用的变量保持一致非常重要。例如,若初始状态下使用了不同的 key (如 `deptId`) 而后续又改为其他名字 (`value`) ,则可能导致某些功能失效或者样式异常等问题[^4]. 因此建议始终维持前后端数据结构的一致性和连贯性,避免不必要的混淆和错误发生。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值