问题:
最近公司发现了一个很神奇的 bug,在查询员工排班情况的时候发现做好的表格显示错位。如下图:
原因:
一开始我的直觉告诉我会不会是别人写 v-for 的时候 没有绑定 :key 。当我熟悉完代码以后发现 确有其事,不过加了 key 以后仍旧无济于事。后来查明原因是element ui 官方的 fixed 属性在作祟。
我的解决办法:
<el-table-column
prop="eename"
align="center"
fixed
:key="Math.random()"
label="员工姓名"
width="100">
</el-table-column>
如图,给 el-table-column 属性加上一个 :key="Math.random()" 就解决了。
ps:有网友说这个方法治标不治本会出现点击表格的时候抖动,于是给我推荐了如下方法:
updated() {
// multipleTable2是表格的ref属性值
if (this.$refs.multipleTable2 && this.$refs.multipleTable2.doLayout) {
this.$refs.multipleTable2.doLayout();
}
},
通过生命周期来解决关键问题所在,也让我自己学到了更多!感谢!