VUE3中Echarts 出现tooltip.trigger=‘axis‘,提示框不显示问题

问题:

VUE3中Echarts tooltip.trigger=‘axis‘不展示提示框;tooltip.trigger=‘item‘时出现提示框。

请检查以下几点:

  1. 确保 tooltip 组件没有被禁用(即设置为 show: false),show属性可不设置,默认为true

  2. 确保 trigger 属性正确设置为 'axis'

  3. 确保你的图表实例化没有问题,并且已经正确加载了配置。

如果以上都是正确的,但仍然不显示提示框,

解决方案:(最终极)

不要将 echarts 实例包装成响应式对象,也就是避免使用 ref 和 reactive。可以用 shallowRef 或者普通变量

import { ref, reactive, watch, onMounted, markRaw } from 'vue';

const chartId= document.getElementById(this.id);
this.echart = markRaw(echarts.init(chartId));
this.echart.setOption({ ... })

markRaw: 将一个对象标记为不可被转为代理。返回该对象本身。

toRaw:根据一个 Vue 创建的代理返回其原始对象。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 使用 Echarts 时,如果遇到tooltip不更新的问题,可以检查以下几个方面: 1. 确认数据已经更新 首先要确定数据已经更新,这可以通过打印或者在页面上显示数据进行确认。 2. 确认tooltip.formatter的params参数 在tooltip.formatter,params参数是一个数组,它包含了当前图表的数据。如果params没有更新,则可能是因为params没有正确的绑定到Vue的数据上。可以使用Vue的watch属性来监听数据的变化,然后手动更新params参数。 3. 使用Vue的ref属性 使用Vue的ref属性来获取图表实例,然后通过实例来更新tooltip.formatter的params参数。在mounted生命周期钩子函数,可以获取到实例,然后在数据更新之后,手动调用实例的setOption方法来更新图表。 ``` <template> <div ref="chart" style="width: 100%; height: 100%;"></div> </template> <script> import echarts from 'echarts'; export default { name: 'EchartsDemo', data() { return { chartData: [], }; }, mounted() { this.chart = echarts.init(this.$refs.chart); this.chart.setOption(this.getOption()); }, methods: { getOption() { return { tooltip: { trigger: 'axis', formatter: (params) => { return `x:${params[0].value[0]} y:${params[0].value[1]}`; }, }, series: [ { type: 'scatter', data: this.chartData, }, ], }; }, updateChartData() { // 更新数据 this.chartData = [ [1,2], [2,3], [3,4] ]; // 手动更新tooltip.formatter的params参数 this.chart.setOption({ tooltip: { formatter: (params) => { return `x:${params[0].value[0]} y:${params[0].value[1]}`; }, }, series: [ { type: 'scatter', data: this.chartData, }, ], }); }, }, }; </script> ``` 以上是一些可能的解决方案,如果还不能解决问题,可以提供更多的信息以便进一步排查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值