问题出现:
- 点击图例切换的时候会报错出问题
- 在窗口大小发生变化后进行重绘出现的问题
问题截图:
问题分析:
由于是使用的vue2升级vue3,vue2没出现过这种错误,通过排除法确定是vue3响应式问题
Vue 3 默认使用Proxy + Reflect来创建响应式对象(通过 reactive),这种代理机制对大多数情况是透明的。然而ECharts第三方库 并不知道这个 Proxy 的存在。它们可能直接操作了对象的原型、使用 Object.keys()、JSON.stringify() 或其他非 Proxy 友好的方式访问对象。
这会导致:
获取不到正确的api,在 resize、update 图表等时候报错;
解决办法:
在组合式中使用 markRaw 标记不要被响应式处理的对象
import { markRaw } from 'vue';
let myChart = ref(null)
myChart.value = markRaw(echarts.init(document.getElementById(“chart”))) //避免proxy
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。