项目场景:
vue + view-design 4.5.0
问题描述
二次查询数据渲染出现TypeError: Cannot read properties of undefined (reading 'key')
原因分析:
出现渲染错误的原因有多种,这里只分享我遇到的情况,如果正好对号入座,那么可以节省大量排查时间,如果不是这个原因也可以带来思路,因为这个错误基本上是因为不符合渲染规则造成的。
我这里是因为使用了iview的table,其中某一列需要树形控制展开,使用了tree的功能(组件功能链接:https://www.iviewui.com/view-ui-plus/component/form/table#tree),问题就出在rowKey上,我这里的rowKey字段是sn,然后children的数据因为和父级行数据是同一个数据的不同形式,所以也有相同的sn字段,这就造成了重复的rowKey,导致二次渲染数据时发生异常。
解决方案:
children的数据如果和父级数据有相同的rowKey字段,需要避开,如果children需要使用该字段可以使用其他字段来替代,如果不使用的话children数据就不要返回该字段