【Antd-Vue】你的cascader或者selectclear函数(allowClear)失效了吗?
工作中遇到一个小BUG。在使用ant-design-vue的cascader时,发现清除内容的功能没有用,查阅了官方文档也没有找到相关的解决方案。然后我发现了这个内容:antdSelect组件的allowClear点击无效,无法清除?观察到由于同时设置了value属性和allowClear属性,所以无法点击X清除当前选中项。官方对应文档并没有提供allowClear点击事件来让我们自定义自己的事件。所以,解决方法是去掉value或者获取X清除的dom元素,加上点击事件。然后按照这个思路开始解决BUG。首先是失败的问题重现。问题复现时,好像新版本已经解决了这个问题。于是查看了公司正在做的项目的版本,如下:"vue":"^2.6.11","ant-design-vue":"^1.6.4",但是没有那个项目重现问题Version:"vue":"^2.6.11""ant-design-vue":"^1.7.2",我们贴一下代码:select.vue:杰克露西禁用一鸣鹤
cascader.vue:
测试: 看效果:可以看到新版本的ant-design-vue可以正常清除,即使同时使用value属性和allowClear属性重现版本问题,先看在代码中:
中的配置cascader,同时设置了allowClear和value两个属性。看一下效果:可以看到点击清除按钮没有用,所以解决方法来了:@mouseenter触发的方法:获取鼠标移入级联后清除内容的按钮,然后添加按钮的点击事件,点击手动清除当前显示的内容。//清除级联选择器clearCascader(e){//console.log(e)letclearDom=e.path[0].children[2]clearDom.addEventListener("click",()=>{this.activeValue=[]})},看效果:对于allowClear和value,官方文档给出的解释:参数描述类型默认值allowClear是否支持清除booleantruevalue(v-model)指定选中项string[]|number[]-总结在实际开发中,项目的版本和依赖包的版本可能是旧的,也可能是新的。因此,某些内容的使用可能会被放弃或升级或改进。所以在开发过程中,遇到问题要多看文档,对于文档中没有的问题,要及时找到相关的解决方案。保持愚蠢,保持饥饿。