echarts多页面切换互相影响

最近用echarts遇到2个问题
问题1.两个页面都有图表,打开第一个图表正常,打开第二个图表不显示,切换回第一个图片,发现第二个图表显示在第一个页面
在这里插入图片描述页面1
在这里插入图片描述页面2
在这里插入图片描述页面3
解决办法是图表挂载的dom的id设置成不同值即可
const dom = document.getElementById(‘mainAsset’)
const dom = document.getElementById(‘mainAsset123’)

问题2.页面做好后,随便修改个数据重新加载页面,图表丢失,需要再次刷新才出来
在这里插入图片描述完成页面在这里插入图片描述修改数据图表丢失图表丢失
网上找了不少文章,有说去掉dom属性的
dom.removeAttribute(‘echarts_instance’)
有说用this.$nextTick()

试了试都不好用,只有用setTimeout(() => {
this.initChart();
}, 1000);好用。
另外,用settimeout 同时也能解决第一个问题,即不需要修改成不同的domid,毕竟CV来的也不容易

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 ECharts 中实现多Tab切换,可以通过以下步骤实现: 1. 创建一个包含多个Tab的容器,比如使用Bootstrap的Tab组件或自定义实现一个Tab容器。 2. 在每个Tab面板中创建一个ECharts实例对象。 3. 为每个Tab面板的ECharts实例对象设置不同的数据和配置,以展示不同图表。 4. 在Tab切换时,根据切换的面板,重新渲染对应的ECharts实例对象。 以下是一个简单的示例代码: HTML代码: ``` <div class="tab-container"> <!-- Tab导航 --> <ul class="nav nav-tabs"> <li class="active"><a href="#tab1">Tab 1</a></li> <li><a href="#tab2">Tab 2</a></li> <li><a href="#tab3">Tab 3</a></li> </ul> <!-- Tab面板 --> <div class="tab-content"> <div class="tab-pane active" id="tab1"> <div id="chart1" style="height: 400px;"></div> </div> <div class="tab-pane" id="tab2"> <div id="chart2" style="height: 400px;"></div> </div> <div class="tab-pane" id="tab3"> <div id="chart3" style="height: 400px;"></div> </div> </div> </div> ``` JavaScript代码: ``` // 初始化Tab组件 $('.nav-tabs a').click(function(e) { e.preventDefault(); $(this).tab('show'); }); // 初始化ECharts实例对象 var chart1 = echarts.init(document.getElementById('chart1')); var chart2 = echarts.init(document.getElementById('chart2')); var chart3 = echarts.init(document.getElementById('chart3')); // 设置不同的数据和配置 var option1 = {...}; var option2 = {...}; var option3 = {...}; chart1.setOption(option1); chart2.setOption(option2); chart3.setOption(option3); ``` 当Tab切换时,可以使用ECharts的`setOption`方法重新渲染对应的图表。例如,当切换到Tab 2时,可以使用以下代码重新渲染第二个图表: ``` $('.nav-tabs a[href="#tab2"]').on('shown.bs.tab', function () { chart2.resize(); // 重新调整图表大小 chart2.setOption(option2); // 重新渲染图表 }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值