elementUI标签页不能及时渲染echarts图

发布于 2022-09-12 01:54:40 字数 1789 浏览 35 评论 0

问题

使用v-echarts和elementUI的标签页<el-tabs>
首次默认进入第一个标签页可以直接渲染,但是进入第二个标签页第三个标签页不能及时渲染,都需要缩放一下页面才能渲染出来,控制台也没有任何错误,这是怎么回事?

1k0nh-fml5a.gif

代码

代码已经被简化,但问题依然存在。

<template>
  <div>
    <el-card class="el-card">
      <el-tabs v-model="activeName" @tab-click="handleClick" type="border-card">
        <!--======标签页1====三个标签页内容是同样的数据====-->
        <el-tab-pane label="标签页1" name="one">
          <ve-pie :data="chartData"></ve-pie>
        </el-tab-pane>
        <!--==========标签页2=======-->
        <el-tab-pane label="标签页2" name="two">
          <ve-pie :data="chartData"></ve-pie>
        </el-tab-pane>
        <!--=========标签页3==============-->
        <el-tab-pane label="标签页3" name="three">
          <ve-pie :data="chartData"></ve-pie>
        </el-tab-pane>
      </el-tabs>
    </el-card>
  </div>
</template>

<script>
  export default {
    name: "IncomeStatistics",
    data() {
      return {
        activeName: 'one', //当前激活的标签页
        chartData: {
          columns: ['日期', '访问用户'],
          rows: [
            {'日期': '1/1', '访问用户': 1393},
            {'日期': '1/2', '访问用户': 3530},
            {'日期': '1/3', '访问用户': 2923},
            {'日期': '1/4', '访问用户': 1723},
            {'日期': '1/5', '访问用户': 3792},
            {'日期': '1/6', '访问用户': 4593}
          ]
        },
      };
    },
    methods: {
      //切换标签页时触发
      handleClick(tab, event) {
        this.activeName = tab.name;
      },
    }
  }
</script>

<style scoped>
</style>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

葵雨 2022-09-19 01:54:40

问题已解决

解决方法:

第一种:给<el-tab-pane />标签加一个lazy属性

<el-tab-pane :lazy="true">
  <ve-pie :data="chartData"/>
</el-tab-pane>

第二种:给echarts的标签加上一个if判断

<el-tabs v-model="activeName" @tab-click="handleClick" type="border-card">
  <el-tab-pane label="标签页1" name="one">
    <ve-pie :data="chartData" v-if="activeName==='one'"/>
  </el-tab-pane>
  <el-tab-pane label="标签页2" name="two">
    <ve-pie :data="chartData" v-if="activeName==='two'"/>
  </el-tab-pane>
  <el-tab-pane label="标签页3" name="three" :lazy="true">
    <ve-pie :data="chartData" v-if="activeName==='three'"/>
  </el-tab-pane>
</el-tabs>

参考文章:
element-ui tab切换时echarts不显示
Vue解决echart在element的tab切换时显示不正确

时光清浅 2022-09-19 01:54:40

提供复现 demo

雪若未夕 2022-09-19 01:54:40

请问gif咋做的呀?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文