vue element使用el-table时,切换tab,table表格列项发生错位问题

展示问题

问题描述:使用el-table的fixed="right"属性后,如果切换tab时,回出现最后一列错误的问题

官网提供解决方法:doLayout

  • 需要注意的事项:我这里是通过组件使用的table组件,涉及多层组件封装问题,所以找这个根组件ref找到doLayout方法的时候需要注意写法 (如果存在组件签套,记得多加几次$refs[refName]调用方法)
js 复制代码
<el-tabs v-model="searchParam.activeName" @tab-click="handleClick">
  <el-tab-pane label="统计" name="first">
    <leftTable
      ref="leftTableRef"
      :table-data-list="gateStatisticsListTable"
      :table-all="gateStatisticsListTableAll"
      :count="tableDataCount"
      :search-param="searchParam"
      @refresh="refresh"
      @export-all="exportAll"
      @change-page="changePage" />
  </el-tab-pane>
  <el-tab-pane label="明细" name="second">
    <rightTable
      ref="rightTableRef"
      :table-data-list="gateStatisticsListTable"
      :table-all="gateStatisticsListTableAll"
      :count="tableDataCount"
      :search-param="searchParam"
      @refresh="refresh"
      @export-all="exportAll"
      @change-page="changePage" />
  </el-tab-pane>
</el-tabs>
js 复制代码
 handleClick(tab, event) {
   this.$nextTick(() => {
    if (this.searchParam.activeName === 'first') {
      const that = this
      // 其中leftTableRef是el-table的ref
      that.$refs.leftTableRef.$refs.tableRef.doLayout()
      // 切换 tab请求接口
      this.queryData()
    }
    if (this.searchParam.activeName === 'second') {
      // 其中rightTableRef是el-table的ref
      const that = this
      that.$refs.rightTableRef.$refs.tableRef.doLayout()
      // 切换 tab请求接口
      this.queryData()
    }
  })
},

修改后的效果展示:

相关推荐
橙子家8 小时前
浏览器缓存之【身份与会话管理】:Cookies 和 Private state tokens
前端
最新资讯动态9 小时前
HDC 2026 | 对话鲸鸿动能:存量时代,品牌如何夺回营销“主动权”?
前端
最新资讯动态9 小时前
游戏出海,从产品走向体系
前端
最新资讯动态9 小时前
20人团队跑出百万DAU、大厂也来抢量:谁在鸿蒙生态跑出加速度
前端
最新资讯动态9 小时前
千万开发者背后,鸿蒙商业化的B面
前端
爱勇宝11 小时前
AI 时代:智商决定起点,情商决定走多远
前端·ai编程
kyriewen11 小时前
用了半年 Claude Code 后,我尝试关掉它写了一周代码——结果比想象中严重
前端·javascript·ai编程
IT_陈寒12 小时前
Vite的静态资源打包让我熬夜到三点,这坑千万别跳
前端·人工智能·后端
徐小夕13 小时前
万字拆解 JitWord:企业级实时协同文档底层架构 + 大模型 AI 融合完整实践
前端·vue.js·github
一份执念13 小时前
uni-app 小程序分包限制处理与主包体积优化实战
前端·微信小程序