递归写法
//通过最后一级id即countryId,查找前面两级id
findAncestorsById(tree, id, result = []) {
for (const node of tree) {
if (node.value === id) {
result.push(id);
return result;
}
if (node.children && node.children.length) {
const temp = this.findAncestorsById(node.children, id, result);
if (temp) {
result.push(node.value);
return result;
}
}
}
return null;
},
可以在生命周期中调用
if (this.tempValue && this.tempValue !== '0') {
console.log(this.tempValues);
this.value = this.findAncestorsById(this.options, this.tempValue)
this.value = this.value.reverse()
}
通过这个方法可以得到一个数组,但是是反序的,需要通过reverse()翻转,等到符合el-cascader的数组结构,那么就可以通过后端返回的最后一级id,找到前面几级的id,正常渲染数据了。