关于vue3+echart5 遇到的坑 Cannot read properties of undefined (reading 'type')

 更新时间:2023年04月15日 15:57:56   作者:posted  
这篇文章主要介绍了vue3+echart5 遇到的坑 Cannot read properties of undefined (reading 'type'),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1、错误说明

vue3中,使用data的方式初始化echart图表

export default {
  data() {
    return {
      chart: null,
      ...
    }
  },
  mounted() {
    this.chart = echarts.init(document.getElementById(this.id))
    this.chart.setOption({...})
  },
  ...
}

在窗口大小发生变化时,需要执行this.chart.resize()动态调整图表的大小,发生错误:

2、错误原因

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

coordSys.type

3、解决方案

参考官方:

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

  • 有些值不应该是响应式的,例如复杂的第三方类实例或 Vue 组件对象。
  • 当渲染具有不可变数据源的大列表时,跳过 proxy 转换可以提高性能。

所以在实例化echart时,将其指定为非响应式的即可。

import { markRaw } from 'vue'
this.chart = markRaw(echarts.init(document.getElementById(this.id)))

随着vue3.2版本的发布以及setup语法的出现,这些已经都不是问题啦,赞美vue

到此这篇关于vue3+echart5 遇到的坑 Cannot read properties of undefined (reading 'type')的文章就介绍到这了,更多相关vue3报错Cannot read properties of undefined内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解析VUE中nextTick是什么

    解析VUE中nextTick是什么

    nextTick是Vue提供的一个全局API,由于Vue的异步更新策略导致我们对数据的修改不会立刻体现,在DOM变化上,此时如果想要立即获取更新后的DOM状态,就需要使用这个方法,这篇文章主要介绍了解析VUE中nextTick,需要的朋友可以参考下
    2022-11-11
  • vue 1.x 交互实现仿百度下拉列表示例

    vue 1.x 交互实现仿百度下拉列表示例

    本篇文章主要介绍了vue 1.x 交互实现仿百度下拉列表示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • elementUI checkBox报错Cannot read property 'length' of undefined解决

    elementUI checkBox报错Cannot read property &ap

    这篇文章主要为大家介绍了elementUI checkBox报错Cannot read property 'length' of undefined的解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Vue实现输入框回车发送和粘贴文本与图片功能

    Vue实现输入框回车发送和粘贴文本与图片功能

    这篇文章主要为大家详细介绍了Vue如何实现聊天输入框回车发送、粘贴文本(包括HTML)、粘贴图片等功能,文中的实现方法讲解详细,需要的可以参考一下
    2022-05-05
  • Vue对Element中的el-tag添加@click事件无效的解决

    Vue对Element中的el-tag添加@click事件无效的解决

    本文主要介绍了Vue对Element中的el-tag添加@click事件无效的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Vue 通过this.$emit()方法子组件向父组件传值(步骤分享)

    Vue 通过this.$emit()方法子组件向父组件传值(步骤分享)

    这篇文章主要介绍了Vue this.$emit()方法通过子组件向父组件传值,第一步在父组件中引入子组件,第二步子组件向父组件传值,本文通过需要的朋友可以参考下
    2022-11-11
  • vite+vue3中使用mock模拟数据问题

    vite+vue3中使用mock模拟数据问题

    这篇文章主要介绍了vite+vue3中使用mock模拟数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • vue3获取当前路由地址的两种方法

    vue3获取当前路由地址的两种方法

    近期在做ve3的项目时因为功能需要,需要获取当前路由的地址,下面这篇文章主要给大家介绍了关于vue3获取当前路由地址的两种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • vue通过 API 监听数组的变化

    vue通过 API 监听数组的变化

    这篇文章主要介绍了vue通过 API 监听数组的变化,在 Vue 中,你可以通过监听数组的变化来更新界面,Vue 提供了一些特殊的语法以及 API 来实现对数组的监听,本文通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • el-select 下拉框全选、多选的几种方式组件示例详解

    el-select 下拉框全选、多选的几种方式组件示例详解

    这篇文章主要介绍了el-select 下拉框全选、多选的几种方式组件示例详解,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12

最新评论