vue級(jí)聯(lián)選擇器的getCheckedNodes使用方式
vue級(jí)聯(lián)選擇器的getCheckedNodes
<el-cascader
:options="menudata"
:props="defaultPropsa"
v-model="val"
clearable
@change="menuchange"
></el-cascader>
data(){
return{
defaultPropsa: {
//三級(jí)聯(lián)動(dòng)
children: "children",
label: "label",
value: "id",
checkStrictly: true
},
menudata: [], //三級(jí)聯(lián)動(dòng)data
val: [],
vals: [],
}
}
methods:{
//三級(jí)聯(lián)動(dòng)
async getmenudata() {
const { data: res } = await this.$http.get("ruixing/chanPinJiaoFuAll"); //接口數(shù)據(jù)
// console.log(res.data);
this.menudata = res.data;
},
//element組件里的 getCheckedNodes 獲取選中的節(jié)點(diǎn)
getCascaderObj(val, opt) {
return val.map(function(value, index, array) {
for (var itm of opt) {
if (itm.id == value) {
opt = itm.children;
return itm;
}
}
return null;
});
},
//三級(jí)聯(lián)動(dòng)change事件
menuchange() {
this.vals = this.getCascaderObj(this.val, this.menudata); //選中節(jié)點(diǎn)數(shù)據(jù)
console.log(this.vals)
},
}
效果


Element-UI el-tree報(bào)錯(cuò)getCheckedNodes is not a function
按照element上的文檔來(lái)使用element 里面的樹形組件

使用后 突然發(fā)現(xiàn)報(bào)錯(cuò)
“TypeError: this.$refs.tree.getCheckedNodes is not a function”
黑.人 問(wèn)號(hào)臉???

排查原因
把 ref 打印一下 發(fā)現(xiàn)竟然有五個(gè)tree

突然想到 el-tree 是通過(guò)for 循環(huán)出來(lái)的 所以造成了有五個(gè) 一樣的ref
知道原因就好解決了
解決方案一
只獲取某個(gè)tree里面的值
this.$refs.tree[0].getCheckedNodes();
解決方案二
<el-tree
:props="defaultProps"
:data="item.children"
node-key="id"
ref="tree"
show-checkbox
@check="(click, checked)=>{handleCheckChange(click, checked)}"
>
</el-tree>
handleCheckChange(data, checked,) {
console.log(checked.checkedKeys);
console.log("全選",checked.checkedNodes);
console.log(checked.halfCheckedKeys);
console.log("半選",checked.halfCheckedNodes);
},
這樣就可以啦~
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue3基礎(chǔ)組件開發(fā)detePicker日期選擇組件示例
這篇文章主要為大家介紹了vue3基礎(chǔ)組件開發(fā)-detePicker(日期選擇組件)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
基于腳手架創(chuàng)建Vue項(xiàng)目實(shí)現(xiàn)步驟詳解
這篇文章主要介紹了基于腳手架創(chuàng)建Vue項(xiàng)目實(shí)現(xiàn)步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
vue+scss+element-ui實(shí)現(xiàn)表格表頭斜杠一分為三方式
這篇文章主要介紹了vue+scss+element-ui實(shí)現(xiàn)表格表頭斜杠一分為三方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
解決vue中使用history.replaceState?更改url?vue?router?無(wú)法感知的問(wèn)題
這篇文章主要介紹了vue中使用history.replaceState?更改url?vue?router?無(wú)法感知的問(wèn)題,本文給大家分享修復(fù)這個(gè)問(wèn)題的方法,需要的朋友可以參考下2022-09-09
vue如何實(shí)現(xiàn)左右滑動(dòng)tab(vue-touch)
這篇文章主要介紹了vue如何實(shí)現(xiàn)左右滑動(dòng)tab(vue-touch),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07

