本文主要是介绍关于uni-app在TAB切换中图表使用resize重置的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如图所示,当前有两个tab分别有两个图表,当前还是处于切换缓存的,未更新数据,DOM存在
如不知道怎么在uni-app中使用Echarts 请参考:uni-app中使用Echarts
之前在组件当中发现 v-if 会导致当前数据重刷,导致体验感不强,所以使用了 v-show,由于需要适配,所以宽高比皆为 100% (有min-height ,min-width ) ,这就导致当渲染折线图时饼图也一起被渲染了,由于display :none 这就导致饼图初期取不到宽高,只能默认展示100* 100。
由于我想使用echarts的resize方法,上网找了一大圈,没找到。最后,参考了updateEcharts的使用方法,成功解决tab切换并调用resize方法。话不多说,直接上代码
<!--parent 当前为饼图自定义组件 currTab为切换tab事件函数里定义 -->
<PieChart :currTab="currTab" :pieChartsData="pieChartsData"></PieChart>// js
// 切换tab 触发事件函数
changeTab(it) {this.currTab = it.value;
},// piechart 组件
// currTab 接收传参,并绑定到:change方法中 必须先属性绑定 :currTab,才能绑定:change
<view @click="echarts.onClick" :prop="option" :currTab="currTab" :change:currTab="echarts.resize":change:prop="echarts.updateEcharts" id="pieEcharts"class="pie-echarts"></view>// js 接收传参
props: { currTab:{type:String,default:""}
}<script module="echarts" lang="renderjs">methods: {// resize 同上面 :change:currTab="echarts.resize" 绑定方法resize(){if(myChart){myChart.resize();}},}
</script>
代码比较简洁,不过都是精简代码,使用起来即可。即时不适用resize方法,也可在当前方法内部调用eharts 实例。
这篇关于关于uni-app在TAB切换中图表使用resize重置的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!