使用ResizeObserver监听ECharts宽高变化,出现了以下两种报错,外加图表与数据错位的问题。
报错一
报错二
图表错位
原因
ECharts会被在Vue内部转换成响应式对象,从而在resize 的时候获取不到
使用 Vue的API , markRaw,标记一个对象,使其不能成为一个响应式对象
markRaw:响应式 API:进阶 | Vue.js
正确使用
import { markRaw } from "vue";
const myChart = ref();
// 初始化echart
myChart.value = markRaw(echarts.init(document.getElementById('main')));
myChart.value = markRaw(echarts.init(document.getElementById(props.id) as HTMLDivElement));
一定要切记使用markRow()