关于element中el-cascader懒加载数据回显不上的bug

4,712 阅读1分钟

最近在项目开发中由于业务需求用到了el-cascader,刚开始用时很顺利、很快乐;但是等数据保存完修改要回显时,问题就来了,一个头两个大,下面就来说说具体的问题以及解决的办法;欢迎大佬指正,提出意见见解......

  • 用法

code2.png

image.png image.png 这里就讲一下props的leaf属性:就是定义一个树行isLeaf,isLeaf等于true就是末级,就不会有后面的箭头;

  • 代码示例 懒加载获取数据 code1.png

  • 问题描述:

    当页面刚开始第一次打开弹框,回显是没有问题的,然后关了弹框,再次打开回显就回显不上(只要不是第一次,后面都回显不上)

image.png

code3.png

image.png 这里可以看到带一次弹框打开时this.refs.cascaderundefined;后面在关闭时this.refs.cascader是undefined;后面在关闭时this.refs.cascader这个dom还是在的;后面弹框再打开回显应该不是回显的对应的这个dom上,我这里猜测每次应该是回显的dom不一样才会导致回显会不显示。大佬觉得这里有讲的部队的地方欢迎指正。

  • 解决办法

    直接给这个表单加一个v-if,如图:

code4.png

  • 注意点

    我们在回显数据时先拿到第一级的数据,然后在拿第二级的数据的时候,options配置的懒加载数据给children赋值的时候,我们要用this.$set,不然回显也不会显示,如图:

image.png

  • 结尾

    文章写的略显粗糙,有不好的地方欢迎大佬指点。谢谢各位大佬!!!!