首先,是数组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 = []