echart报错Cannot read properties of undefined (reading ‘type‘)

在Vue3中,由于proxy的使用,this.chart在内部被转换成响应式对象,这可能导致在resize时无法正常工作。为了解决这个问题,可以使用markRaw函数将echarts实例标记为非响应式,以确保其在初始化时不受响应式转换影响,提高性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误显示

在这里插入图片描述

错误原因

vue3中使用proxy的方式监听响应式,this.chart会被在vue内部转换成响应式对象,从而在resize 的时候获取不到

解决方案

参考官方:
你可以有选择地退出默认的深度响应式/只读转换模式,并将原始的,未被代理的对象嵌入状态图中。它们可以根据情况灵活运用:

  • 有些值不应该是响应式的,例如复杂的第三方类实例或 Vue 组件对象。
  • 当渲染具有不可变数据源的大列表时,跳过 proxy 转换可以提高性能。
    所以在实例化echart时,将其指定为非响应式的即可。
import { markRaw } from "vue";
  // 初始化chart
const chart = ref<echarts.ECharts | null>(null);
chart.value = markRaw(echarts.init(chartElement, "dark"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值