#本篇记录使用el-table的树形数据所需注意的点
第一点要注意的,其实这不算坑,是我自己粗心,接手的项目用的element版本低,2.4的,但是使用的时候对照2.12版本在使用,调了半天,就是不出来下拉箭头,后来才发现,希望大家都别学我这么马虎~~~
第二点就是row-key,千万要注意row-key所需配的必须是每条数据里均不会出现重复value值的那个字段,一般来说都会有个唯一id啥的,配那个就好了,不然报错Duplicate keys detected: ‘0’. This may cause an update error。
第三点就是:tree-props的配置,官网上的例子是:tree-props="{children: ‘children’, hasChildren: ‘hasChildren’}">,children可随意配置你参数里的任意字段,就是子集数组,至于hasChildren,好像并没什么卵用,可能是我还没发现他的用处,如果有幸遇到大佬知道的,望不吝赐教,谢谢
第四点就是,前面的问题都解决后会给你来一个[Vue warn]: Error in nextTick: “TypeError: Cannot read property ‘reduce’ of null”,这个一开始就触及到我的知识盲区了,只能找度娘,各种答案,有些说vue版本跟element版本不一致,要升级版本,试了,不行。。。有的说package.json文件里element的版本号前去掉‘^’,试了也不行。。。最后没办法,看报错信息:无法读取空的属性’reduce’
点进common.js
好像醒悟过来了,应该是data为空了,但是检查后端来的参数,都正常,而且不做这个树形数据的话显示一点问题没有,最后的最后发现
自己初始定义用来接收数据的字段被定义成了null,所以在拿到接口返回的数据之前,data.reduce就报错了!解决方案那大家应该都能猜到了,初始参数不能为null,定义成[]空数组就好;或者在el-table上加一个v-if=‘listData’,解决!
好吧~应该不会有人来看到,就当在这记录自己踩过的坑,也警示自己多细心,不要再犯同样的错误。