问题:点击legend时,控制台报错 Uncaught TypeError: Cannot read properties of undefined (reading 'type')
注意:
- 有些值不应该是响应式的,例如复杂的第三方类实例或Vue组件对象。
- 当渲染具有不可变数据源的大列表时,跳过响应式转换可以提高性能。
解决问题
这个问题是在切换series或者resize时报错的,this.materialChart 会被在vue内部转换成响应式对象,从而在resize 的时候获取不到。
markRaw用来标记一个对象,使其永远不会成为响应式对象,返回对象本身,这是vue3的新API。
在组件中引入:
import { markRaw } from "vue";
使用:
this.materialChart = markRaw(echarts.init(
document.getElementById("materialmain")
));