el-cascader 代码取消选择,手动删除某项

在Vue项目中使用Element UI的级联选择器时,遇到一个问题:删除数组中的一项后,视图仍显示已删除项为选中状态。解决方法是在$nextTick中更新数组,并通过设置checkedValue和activePath清空级联面板的选中状态。此问题涉及到组件的异步更新和状态同步。
摘要由CSDN通过智能技术生成

首先,是数组splice(index,1)

但是这样发现数据已经没有那一条了,视图却还保持选中状态

参考这个issue : 

https://github.com/ElemeFE/element/issues/18669

解决:(不是下拉框,直接是级联面板,那么,panel这个获取稍有不同)

this.$nextTick(()=>{

        this.cascaderValue.splice(recIndex, 1);

        this.$refs.cascaderAddr.$refs.menu[1].panel.checkedValue = []

        // this.$refs.cascaderAddr.$refs.menu[1].panel.calculateCheckedNodePaths()

        // this.$refs.cascaderAddr.$refs.menu[1].panel.syncActivePath();

})

issue原内容:(有改动因为级别不同)

Try this:
<el-cascader ref="cascader"/>
this.$refs.cascader.$refs.panel.checkedValue = [];//也可以是指定的值
this.$refs.cascader.$refs.panel.activePath = [];
this.$refs.cascader.$refs.panel.syncActivePath();

另外参见 elementui 恢复级联框el-cascader的默认状态 - 考拉很OK - 博客园

--------------------、

后续:更换成不带menu的了,然后,

 发现不用在nextTick里,这样的话model更新不了?

直接写就可以了。

然后就是一些类似的方法:都是console的时候看的

             this.$refs.cascaderAddr.$refs.panel.checkedValue = []

        // this.$refs.cascaderAddr.$refs.panel.calculateCheckedNodePaths()

        // this.$refs.cascaderAddr.$refs.panel.syncActivePath();

        // this.$refs.cascaderAddr.$refs.panel.calculateMultiCheckedValue()

        // this.$refs.cascaderAddr.$refs.panel.syncMultiCheckState()

        // this.$refs.cascaderAddr.$refs.panel.activePath = []

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值