解決vue3中使用echart報錯:Cannot read properties of undefined (reading ‘type‘)
一、報錯原因
出現(xiàn)如下報錯的原因是:
Proxy 應用到了整個 ECharts 實例上的問題,不太建議把整個 ECharts 實例這樣的對象放到 ref 里,容易影響到實例底層的運行??梢允褂?shallowRef 替代,這樣 Proxy 不會應用到 ECharts 實例底下的各個屬性上。

二、解決辦法
把echart實例對象不要用ref等響應式保存,可以使用shallowRef等淺層作用進行保存。點擊前往官網(wǎng)查看


具體代碼:
<template>
<div ref="dom" class="charts" style="width: 100%; height: 100%;"></div>
</template>
<script setup>
import echarts from 'echarts'
import {onMounted, ref, onBeforeUnmount, watch, shallowRef} from 'vue'
import {on, off} from '@/utils/tools';
// props傳值
const props = defineProps({
option: Object
})
// 元素
const dom = ref(null)
// echart實例 ---------------------------------------這里使用shallowRef進行保存[添加鏈接描述](https://cn.vuejs.org/api/reactivity-advanced.html#shallowref)
const chart = shallowRef(null)
// 繪制echart
const initChart = () => {
chart.value = echarts.init(dom.value)
chart.value.setOption(props.option, true)
}
// 圖表變化
const chartResize = () => {
chart.value.resize()
}
watch(() => props.option, (value) => {
chart.value.clear()
chart.value.setOption(value)
})
onMounted(() => {
initChart()
on(window, 'resize', chartResize)
})
onBeforeUnmount(() => {
off(window, 'resize', chartResize)
})
</script>
<style scoped lang="less">
</style>到此這篇關于解決vue3中使用echart報錯:Cannot read properties of undefined (reading ‘type‘)的文章就介紹到這了,更多相關vue3使用echart報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue3?跨域配置devServer的參數(shù)和設置方法
這篇文章主要介紹了Vue3?跨域配置devServer的參數(shù)和設置,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
在Vue3中使用CSS Modules實現(xiàn)樣式隔離
隨著構建現(xiàn)代前端應用的需要,樣式的管理和隔離變得越來越重要,為了解決樣式?jīng)_突和管理困難的問題,CSS Modules 應運而生,本文我們將討論如何在 Vue3 中使用 CSS Modules 實現(xiàn)樣式隔離,需要的朋友可以參考下2024-09-09

