问题描述:
项目使用element table 中有些页面出现行渲染行错位,错位的table都是由于使用了fixed固定列导致
原因分析:
table首次渲染时 el-table__fixed-body-wrapper top值计算有问题
解决方案:
触发表格重新渲染
1. 测试用使用foreUpdate,无效
mounted() {
setTimeout(()=> {
this.$forceUpdate();
},200)
},
2. 使用table的doLayout方法,也无效
mounted() {
this.$nextTick(()=> {
this.$refs.table.doLayout()
)
setTimeout(()=> {
this.$refs.table.doLayout()
},500)
},
终极方案:使用forceUpdate+doLayout,mounted触发强制更新,再次调用table的重绘方法,问题解决
mounted() {
setTimeout(()=> {
this.$forceUpdate();
this.$refs.table.doLayout()
},200)
},
缺陷:重绘时页面会有闪动,定时器设置200ms基本可接受