先看错误提示:
原有代码:
<el-tabs @tab-click="handleSheetNameClick" v-model="selectedSheetName">
<el-tab-pane v-for="sheetItem in sheetNames" :label="sheetItem" :name="sheetItem">
<div style="display:flex; flex-wrap:wrap;" >
<div class="echart-div" v-for="chartItem in echartDataArray" :id="chartItem.sheetName"></div>
</div>
</el-tab-pane>
</el-tabs>
默认加载第一个tab 页的时候,echart显示正常,但是切换到其他tab页面,echart就无法正常显示,F12会看到开头的错误提示。
搜索了很多方案,加延迟、代码重新给clientWidth、clientHeight赋值等等,都不可行
解决办法:
在echart 的容器div加上一个绑定 v-if="selectedSheetName === sheetItem",当选中的标签页名字符合预期时候显示该div,代码如下
<el-tabs @tab-click="handleSheetNameClick" v-model="selectedSheetName">
<el-tab-pane v-for="sheetItem in sheetNames" :label="sheetItem" :name="sheetItem">
<div style="display:flex; flex-wrap:wrap;" v-if="selectedSheetName === sheetItem">
<div class="echart-div" v-for="chartItem in echartDataArray" :id="chartItem.sheetName"></div>
</div>
</el-tab-pane>
</el-tabs>