报错信息: [ECharts] Can't get DOM width or height. Please check dom.clientWidth and dom.clientHeight. They should not be 0.For example, you may need to call this in the callback of window.onload.
Uncaught TypeError: Cannot read properties of null (reading "width').
series not exists. Legend data should be same with series name or data name.
最近在写app页面时使用了vant2中的 tab 组件和swipe组件。
tab组件
swipe组件
其中出现了3个报错:
结果看vant文档发现,写的明明白白:
tab组件的文档:
常见问题
组件从隐藏状态切换到显示状态时,底部条位置错误?
Tabs 组件在挂载时,会获取自身的宽度,并计算出底部条的位置。如果组件一开始处于隐藏状态,则获取到的宽度永远为 0,因此无法展示底部条位置。
解决方法
方法一,如果是使用 v-show 来控制组件展示的,则替换为 v-if 即可解决此问题:
before:
<vant-tabs v-show="show" />
after:
<vant-tabs v-if="show" />
方法二,调用组件的 resize 方法来主动触发重绘:
<van-tabs v-show="show" ref="swipe" />
this.$refs.swipe.resize();
swipe组件的文档:
组件从隐藏状态切换到显示状态时,无法正确渲染?
Swipe 组件在挂载时,会获取自身的宽度,并计算出轮播图的位置。如果组件一开始处于隐藏状态,则获取到的宽度永远为 0,因此无法正确计算位置。
解决方法
方法一,如果是使用 v-show 来控制组件展示的,则替换为 v-if 即可解决此问题:
before:
<vant-swipe v-show="show" />
after:
<vant-swipe v-if="show" />
方法二,调用组件的 resize 方法来主动触发重绘:
<van-swipe v-show="show" ref="swipe" />
this.$refs.swipe.resize();
也就是说,把v-show换成v-if就OK了(我的做法就是这样)。
第三个报错也没了(这个不知啥原因)。