In vue3, use data to initialize the echart chart
export default {
data() {
return {
chart: null,
...
}
},
mounted() {
this.chart = echarts.init(document.getElementById(this.id))
this.chart.setOption({...})
},
...
}When the window size changes, you need to execute this.chart.resize() Dynamically adjust the size of the chart, an error occurs:

Use proxy in vue3 to monitor the response, this.chart will It is converted into a responsive object inside vue, so that it cannot be obtained during resize
coordSys.type
Refer to the official:
You can exit selectively Default deep reactive/read-only transformation mode and embed raw, unproxied objects in statecharts. They can be used flexibly according to the situation:
Some values should not be reactive, such as complex third-party class instances or Vue component objects.
Skipping proxy conversions can improve performance when rendering large lists with immutable data sources.
So when instantiating echart, just specify it as non-responsive.
import { markRaw } from 'vue'
this.chart = markRaw(echarts.init(document.getElementById(this.id)))The above is the detailed content of How to solve the pit Cannot read properties of undefined (reading 'type') encountered by vue3+echart5. For more information, please follow other related articles on the PHP Chinese website!