事件缘由:由于城市树会反复调用,所以不用api每次调用,改用数据缓存一次读取,各处使用。然后我把调用的数据放入treeselect,发现组件就崩溃了,但是api读取的数据就没问题。
查看不是props问题,也不是watch问题,因为是个数组,不是属性,所以怀疑一下。
最后发现是数据没有进行过滤导致。
getOptions (data) { let d = data let parentType = d[0].parentId let putFn = (pid) => { let arr = [] for (let i = 0, len = d.length; i < len; i++) { if (d[i].parentId === pid) { let obj = {} obj = { ...d[i] } let n = putFn(d[i].id) if (n.length !== 0) { obj.children = n } arr.push(obj) } } return arr } return putFn(parentType) },