echarts在vue项目中的使用

1.下载安装

1.1控制台运行 npm install echarts --save

1.2然后有一种在main.js里面配置全局变量的方法(此方法我配置了没用)

import echarts from 'echarts'
Vue.prototype.$echarts = echarts;

1.2 使用官网的方法引用(在使用页面引入echarts)

import * as echarts from "echarts";

2. 使用途中报错util.js?d5c9:404 Uncaught Error: id duplicates: u00000

util.js?d5c9:404 Uncaught Error: id duplicates: u00000
    at assert (util.js?d5c9:404:1)
    at eval (model.js?fea5:352:1)
    at Array.forEach (<anonymous>)
    at each (util.js?d5c9:205:1)
    at makeIdAndName (model.js?fea5:349:1)
    at Module.mappingToExists (model.js?fea5:197:1)
    at GlobalModel.visitComponent (Global.js?05a0:294:1)
    at Function.entity.topologicalTravel (component.js?58db:122:1)
    at GlobalModel._mergeOption (Global.js?05a0:287:1)
    at GlobalModel._resetOption (Global.js?05a0:203:1)

该问题好像是因为图标重绘时发生问题,解决办法:每次使用后将charts指向空

let chartDom = document.getElementById("chartLine");
let myChart = echarts.init(chartDom);
.......
myChart.clear();        // 这句可能有用
myChart.setOption(option);
myChart = null;        // 主要是这一句

然后第二天起来的时候我将指向空的两行代码删掉,居然还能正常运行。

3. 在做柱状图下钻时报错Uncaught TypeError: Cannot read properties of null (reading 'setOption')

Uncaught TypeError: Cannot read properties of null (reading 'setOption')
    at ECharts.eval (index.vue?806d:373:1)
    at ECharts.Eventful.trigger (Eventful.js?8434:103:1)
    at ECharts.handler (echarts.js?f2a6:847:1)
    at Handler.Eventful.trigger (Eventful.js?8434:103:1)
    at Handler.dispatchToElement (Handler.js?8e4e:145:1)
    at Handler.<computed> [as click] (Handler.js?8e4e:220:1)
    at HandlerDomProxy.Eventful.trigger (Eventful.js?8434:103:1)
    at HandlerDomProxy.localDOMHandlers.<computed> (HandlerProxy.js?bc59:162:1)
    at HTMLDivElement.eval (HandlerProxy.js?bc59:209:1)

问题代码块

let chartDom = document.getElementById("chartdetailbar");
let myChart = echarts.init(chartDom);
let option;
option = {......}
let drilldownData= [......]

myChart.on("click", function (event) {
  if (event.data) {
    var subData = drilldownData.find(function (data) {
      return data.dataGroupId === event.data.groupId;
    });
    if (!subData) {
      return;
    }
    myChart.setOption({        // 出错地方
      xAxis: {
        data: subData.data.map(function (item) {
          return item[0];
        }),
      },
      series: {
        type: "bar",
        id: "sales",
        dataGroupId: subData.dataGroupId,
        data: subData.data.map(function (item) {
          return item[1];
        }),
        universalTransition: {
          enabled: true,
          divideShape: "clone",
        },
      },
    });
  }
});
// myChart.clear();
myChart.setOption(option);
// myChart = null;

最后发现是因为将myChart指向空后找不到,需要将最后的那两行代码注释掉

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用echartsvue项目可以通过以下步骤: 1. 安装echarts 可以通过npm或yarn来安装echarts ``` npm install echarts --save ``` ``` yarn add echarts ``` 2. 引入echarts 在需要使用echartsvue组件,通过import语句引入echarts: ``` import echarts from 'echarts' ``` 3. 创建echarts图表 在vue组件,可以通过以下方式创建echarts图表: ``` <template> <div class="chart-container" ref="chart"></div> </template> <script> import echarts from 'echarts' export default { mounted() { const chart = echarts.init(this.$refs.chart) chart.setOption({ // echarts配置 }) } } </script> ``` 在上面的代码,我们通过ref属性引用了一个div元素,然后通过this.$refs.chart获取到了这个div元素,在mounted钩子函数通过echarts.init方法初始化了一个echarts实例,最后通过chart.setOption方法设置了echarts的配置。 4. 实时数据更新 如果需要实现实时数据更新,可以通过watch监听数据的变化,然后在回调函数更新echarts图表: ``` <template> <div class="chart-container" ref="chart"></div> </template> <script> import echarts from 'echarts' export default { data() { return { chartData: [] } }, mounted() { const chart = echarts.init(this.$refs.chart) this.setChartOption(chart, this.chartData) }, watch: { chartData: { handler(newData) { const chart = echarts.init(this.$refs.chart) this.setChartOption(chart, newData) }, deep: true } }, methods: { setChartOption(chart, data) { chart.setOption({ // echarts配置 series: [ { data: data } ] }) } } } </script> ``` 在上面的代码,我们通过watch监听了chartData的变化,在回调函数重新创建了一个echarts实例,并调用了setChartOption方法来更新echarts图表。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楠柯1222

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值