在vue中引入echarts ,应用报错, “TypeError: Cannot read properties of undefined (reading ‘init‘)

前言:在vue中引入echarts ,应用报错, “TypeError: Cannot read properties of undefined (reading ‘init‘)
当时检查了导入引用都没有出错,查阅文档发现可能是下载了Echarts的最新版本
所以就重新下载了4.0版本覆盖之前下载的版本启动项目运行成功了

npm install echarts@4.8.0 --save

源代码:

##src/main.js
// 引入 ECharts 主模块
let echarts = require('echarts/lib/echarts');
// 引入折线图/柱状图等组件
require('echarts/lib/chart/line')
require('echarts/lib/chart/bar')
require('echarts/lib/chart/radar')
// 引入提示框和title组件,图例
require('echarts/lib/component/tooltip')
require('echarts/lib/component/title')
 require('echarts/lib/component/legend')
 require('echarts/lib/component/legendScroll')//图例滚动
Vue.prototype.$echarts = echarts 
##app.vue
  <div id="box"></div>
  mounted(){
    this.getEcharts()
  },
  methods:{
    getEcharts(){
       // 基于准备好的dom,初始化echarts实例
      var myChart = this.$echarts.init(document.getElementById('box'));
      // 指定图表的配置项和数据
      var option = {
        title: {
          text: 'ECharts 入门示例'
        },
        tooltip: {},
        legend: {
          data: ['2015','2016','2017']
        },
       dataset: {
    // 用 dimensions 指定了维度的顺序。直角坐标系中,如果 X 轴 type 为 category,
    // 默认把第一个维度映射到 X 轴上,后面维度映射到 Y 轴上。
    // 如果不指定 dimensions,也可以通过指定 series.encode
    // 完成映射,参见后文。
    dimensions: ['product', '2015', '2016', '2017'],
    source: [
      { product: 'Matcha Latte', '2015': 43.3, '2016': 85.8, '2017': 93.7 },
      { product: 'Milk Tea', '2015': 83.1, '2016': 73.4, '2017': 55.1 },
      { product: 'Cheese Cocoa', '2015': 86.4, '2016': 65.2, '2017': 82.5 },
      { product: 'Walnut Brownie', '2015': 72.4, '2016': 53.9, '2017': 39.1 }
    ]
  },
  xAxis: { type: 'category' },
  yAxis: {},
  series: [{ type: 'bar' }, { type: 'bar' }, { type: 'bar' }]
      };

      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    }
  }

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用[1]和[2]提到的错误"TypeError: Cannot read properties of undefined (reading 'init')"和"Error in mounted hook: “TypeError: Cannot read properties of undefined (readinginit’)”"是因为在使用Vue整合Echarts时,没有正确引入Echarts库或者没有正确初始化Echarts实例。引用[3]提到的在main.js引入Echarts的写法是正确的,但是可能还需要检查一下是否正确安装了Echarts库。 要解决这个问题,你可以按照以下步骤进行操作: 1. 确保你已经正确安装了Echarts库。可以通过在终端运行命令"npm install echarts"来安装Echarts。 2. 在你的Vue项目的main.js文件,确保已经正确引入Echarts库,并将其赋值给Vue的原型属性$echarts。可以使用以下代码: ``` import echarts from 'echarts' Vue.prototype.$echarts = echarts ``` 3. 在使用Echarts的组件,确保在mounted钩子函数正确初始化Echarts实例。可以使用以下代码: ``` mounted() { this.chart = this.$echarts.init(this.$refs.chartContainer) // 其他Echarts配置和数据处理 } ``` 这里的`chartContainer`是一个DOM元素的引用,用于渲染Echarts图表。 通过以上步骤,你应该能够解决报错"TypeError: Cannot read properties of undefined (reading 'init')"和"Error in mounted hook: “TypeError: Cannot read properties of undefined (readinginit’)”"。如果问题仍然存在,请检查你的代码是否有其他错误或者提供更多的错误信息以便进一步排查。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值