報錯內(nèi)容:
實現(xiàn)的功能:
使用Element UI的Tabs組件來實現(xiàn)多個Tabs標簽頁,其中每個標簽頁內(nèi)放置的是不同的Echarts圖表,同時還需要根據(jù)step值來判斷決定展示哪些標簽頁
錯誤寫法如下:
<el-tabs type="border-card" @tab-click="handleClick" v-model="activeName">
<el-tab-pane label="Step1" name="Step1" v-if="step >= 1">
<el-col :span="12">
<el-card shadow="hover" style="width: 100%;height:800px;">
<el-row id="Step11" :gutter="0">
<el-col :span="24">
<!--Echarts圖表-->
<div ref="Step11" style="width: 100%;height:700px;"></div>
</el-col>
</el-row>
</el-card>
</el-col>
</el-tab-pane>
<el-tab-pane label="Step2" name="Step2" v-if="step >= 2">Echarts圖表同上</el-tab-pane>
<el-tab-pane label="Step3" name="Step3" v-if="step >= 3">Echarts圖表同上</el-tab-pane>
<el-tab-pane label="Step4" name="Step4" v-if="step >= 4">Echarts圖表同上</el-tab-pane>
<el-tab-pane label="Step5" name="Step5" v-if="step >= 5">Echarts圖表同上</el-tab-pane>
</el-tabs>
mounted() {
this.myChartMethodStep1()
this.myChartMethodStep2()
this.myChartMethodStep3()
this.myChartMethodStep4()
this.myChartMethodStep5()
},
methods:{
myChartMethodStep1(){
// 初始化
var Step11Echart = echarts.init(this.$refs.Step11)
// 配置
var Step11Option = {}
Step11Echart.setOption(Step11Option)
},
myChartMethodStep2(){
// 同上
},
myChartMethodStep3(){
// 同上
},
myChartMethodStep4(){
// 同上
},
myChartMethodStep5(){
// 同上
},
},
報錯原因:(求助ChatGPT)
這通常意味著代碼嘗試訪問一個未定義的變量或?qū)ο蟮?getAttribute?屬性,最可能出現(xiàn)這個錯誤的原因是'this.$refs.Step11'是未定義的或不存在的
結(jié)合我使用的v-if,問題就找到了,當我初始step為0的時候,'this.$refs.Step11'被v-if完全移除,?'this.$refs.Step11'可能會變成undefined,那么我在myChartMethodStep1中調(diào)用到?'this.$refs.Step11'就會導致錯誤
那么嘗試使用v-show來代替v-if,因為v-show只是控制元素的顯示與隱藏,而v-if可以完全移除或添加元素,但是新的問題出現(xiàn)了:v-show無法控制我的標簽頁展示個數(shù),即v-show無法生效,還是會默認所有標簽頁都展示
原因可能是:v-show在普通的HTML元素上起作用,但是對于Element UI組件,它可能不會按預期工作,因為組件可能具有自己的顯示和隱藏邏輯,最后采用<el-tab-pane>組件自帶的控制其顯示與隱藏的disabled屬性
修改后不再報錯:
<el-tabs type="border-card" @tab-click="handleClick" v-model="activeName">
<el-tab-pane label="Step1" name="Step1" :disabled="step < 1">
<el-col :span="12">
<el-card shadow="hover" style="width: 100%;height:800px;">
<el-row id="Step11" :gutter="0">
<el-col :span="24">
<!--Echarts圖表-->
<div ref="Step11" style="width: 100%;height:700px;"></div>
</el-col>
</el-row>
</el-card>
</el-col>
</el-tab-pane>
<el-tab-pane label="Step2" name="Step2" :disabled="step < 2">Echarts圖表同上</el-tab-pane>
<el-tab-pane label="Step3" name="Step3" :disabled="step < 3">Echarts圖表同上</el-tab-pane>
<el-tab-pane label="Step4" name="Step4" :disabled="step < 4">Echarts圖表同上</el-tab-pane>
<el-tab-pane label="Step5" name="Step5" :disabled="step < 5">Echarts圖表同上</el-tab-pane>
</el-tabs>
最終效果為:每個標簽頁都會展示,但是disabled會控制滿足step的標簽頁才可以點擊進去查看,比如下圖:step=2時,Step1和Step2可以查看,Step3-Step5不可以查看
文章來源:http://www.zghlxwxcb.cn/news/detail-745527.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-745527.html
到了這里,關(guān)于Element UI&ECharts報錯:TypeError: Cannot read properties of undefined (reading ‘getAttribute‘)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!