【Antd-Vue】你的cascader或select清空功能(allowClear)失效了吗?
在工作中遇到的一个小小BUG
antd Select组件的allowClear点击失效 无法清空? 观察发现,由于同时设置了value属性和allowClear属性, 导致无法点击X清空当前选中项,官方相应的文档并没有提供allowClear点击事件让我们订制自己的事件,因此,解决办法是去除value或者 获取到X清空的dom元素,增加点击事件.
首先是一个失败的问题复现
"vue": "^2.6.11",
"ant-design-vue": "^1.6.4",
"vue": "^2.6.11"
"ant-design-vue": "^1.7.2",
select.vue:
"select">
"activeValue" defaultValue="lucy" style="width: 120px" @change="handleChange">
"jack"> Jack
"lucy"> Lucy
"disabled"> Disabled
"Yiminghe"> yiminghe
"cascader">
"queryTitle">测试:
:value="activeValue"
changeOnSelect
allowClear
:options="options"
:fieldNames="{
label: 'label',
value: 'value',
children: 'children',
}"
placeholder="Please select"
@change="onChange"
/>
旧版本的问题重现
allowClear
changeOnSelect
@mouseenter="clearCascader"
@change="changeaddvcd"
style="width: 200px;"
:fieldNames="{
label: 'adnm', value: 'adcd', children: 'child'
}"
:value="activeValue"
:options="adcdOption"
placeholder="请选择县"
/>
@mouseenter触发的方法:在鼠标移入cascader后获取用于清空内容的按钮,然后为按钮添加一个点击事件,点击后手动清空当前显示的内容。
// 清空级联选择器
clearCascader (e) {
// console.log(e)
let clearDom = e.path[0].children[2]
clearDom.addEventListener("click", () => {
this.activeValue = []
})
},
参数 说明 类型 默认值
allowClear 是否支持清除 boolean true
value(v-model) 指定选中项 string[] | number[] -
总结
评论