查看项目vue版本(vue 查看版本)

作者:Coder WangYu

来源:SegmentFault 思否社区

在工作中遇到的一个小小BUG

在使用ant-design-vue的cascader时,发现清空内容的功能没有用,查阅官方文档也并没有找到相关的解决方案。然后找到了这样的内容:

antd Select组件的allowClear点击失效 无法清空? 观察发现,由于同时设置了value属性和allowClear属性, 导致无法点击X清空当前选中项,官方相应的文档并没有提供allowClear点击事件让我们订制自己的事件,因此,解决办法是去除value或者 获取到X清空的dom元素,增加点击事件.

然后按照这个思路开始解决BUG。

首先是一个失败的问题复现

在问题复现时发现貌似这个问题在新版本中已经得以解决了。于是我查看了公司在做的项目的版本,如下:

"vue": "^2.6.11",

"ant-design-vue": "^1.6.4",

而没有将问题复现出来的项目的版本:

"vue": "^2.6.11"

"ant-design-vue": "^1.7.2",

还是贴一下代码吧:

select.vue:

<template>

<div class= "select">

<a-select allowClear :value= "activeValue"defaultValue= "lucy"style= "width: 120px"@change= "handleChange">

<a-select-option value= "jack"> Jack </a-select-option>

<a-select-option value= "lucy"> Lucy </a-select-option>

<a-select-option value= "disabled"> Disabled </a-select-option>

<a-select-option value= "Yiminghe"> yiminghe </a-select-option>

</a-select>

</div>

</template>

<>

exportdefault {

data{

return{

activeValue: "lucy",

}

},

methods: {

handleChange (val) {

this.activeValue = val

}

}

}

</>

cascader.vue:

<template>

<div class= "cascader">

<span class= "queryTitle">测试:</span>

<a-cascader

:value= "activeValue"

changeOnSelect

allowClear

:options= "options"

:fieldNames= "{

label: 'label',

value: 'value',

children: 'children',

查看项目vue版本(vue 查看版本),查看项目vue版本(vue 查看版本),查看项目vue版本,社区,第1张

}"

placeholder= "Please select"

@change= "onChange"

/>

</div>

</template>

<>

exportdefault {

data{

return{

activeValue: [ "zhejiang"],

value: [],

options: [

{

value: "zhejiang",

label: "Zhejiang",

children: [

{

value: "hangzhou",

label: "Hangzhou",

children: [

{

value: "xihu",

label: "West Lake",

},

],

},

],

},

{

value: "jiangsu",

label: "Jiangsu",

children: [

{

value: "nanjing",

label: "Nanjing",

children: [

{

value: "zhonghuamen",

label: "Zhong Hua Men",

},

],

},

],

},

],

};

},

methods: {

onChange(val) {

this.activeValue = val;

},

},

};

</>

看看效果:

可以看到,新版本的ant-design-vue可以正常的清空,即使同时使用value属性和allowClear属性。

旧版本的问题重现

先看下代码:

<a-cascader

allowClear

changeOnSelect

@mouseenter= "clearCascader"

@change= "changeaddvcd"

style= "width: 200px;"

:fieldNames= "{

label: 'adnm', value: 'adcd', children: 'child'

}"

:value= "activeValue"

:options= "adcdOption"

placeholder= "请选择县"

/>

在cascader的配置中,同时设置了allowClear和value两个属性。下面看看效果:

可以看到点击清除按钮并没有什么卵用,于是解决方案来了:

@mouseenter触发的方法:在鼠标移入cascader后获取用于清空内容的按钮,然后为按钮添加一个点击事件,点击后手动清空当前显示的内容。

// 清空级联选择器

clearCascader (e) {

// console.log(e)

letclearDom = e.path[0].children[2]

clearDom.addEventListener( "click", => {

this.activeValue = []

})

},

看效果:

对于allowClear和value,官方文档给出的解释:

参数 说明 类型 默认值

allowClear 是否支持清除 boolean true

value(v-model) 指定选中项 string[] | number[] -

总结

由于在实际开发中,项目的版本以及依赖的包的版本有可能是旧的,也有可能是新的。所以有些内容的用法可能被遗弃或升级或改进,所以在开发时,遇到问题要多看文档,文档中没有的问题也要及时查找相关的解决方案。


【免责声明】:

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

【关于转载】:

本站尊重互联网版权体系,本站部分图片、文章大部分转载于互联网、所有内容不代表本站观点、不对文章中的任何观点负责、转载的目的只用于给网民提供信息阅读,无任何商业用途,所有内容版权归原作者所有
如本站(文章、内容、图片、视频)任何资料有侵权,先说声抱歉;麻烦您请联系请后台提交工单,我们会立即删除、维护您的权益。非常感谢您的理解。

【附】:

二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

注:本站资源来自网络转载,版权归原作者和公司所有,如果有侵犯到您的权益,请第一时间联系我们处理!

-----------------------------------------------------------------------------------------------------------

【版权声明】:

一、本站致力于为源码爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、如有内容侵犯您的版权或其他利益的,请编辑邮件并加以说明发送到站长邮箱。站长会进行审查之后,情况属实的会在三个工作日内为您删除。
-----------------------------------------------------------------------------------------------------------


内容投诉
源码村资源网 » 查看项目vue版本(vue 查看版本)

1 评论

您需要 登录账户 后才能发表评论

发表评论

欢迎 访客 发表评论