问题出现:

  1. 点击图例切换的时候会报错出问题
  2. 在窗口大小发生变化后进行重绘出现的问题

问题截图:
image.png

问题分析:

由于是使用的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

fuGUI
1.9k 声望3k 粉丝

The best time to plant a tree is ten years ago, and the second,let us start


引用和评论

0 条评论