Vue3使用Echarts导致tooltip失效

版本 vue3.2.47 echarts5.4.1

使用响应式对象存储 echarts 实例,导致 tooltip 功能失效;

原因:Vue3 使用 proxy 对象代理,而 echarts 则使用了大量的全等(===), 对比失败从而导致了bug。

解决方法:将ref或reactive对象换成普通变量来保存 echarts 实例。

  • 初始化图表
// 初始化柱状图
function initBarChart(data) {
	const myChart = echarts.init(unref(barRef));
	const option: EChartsOption = {
	    color: ['#3398DB'],
	    tooltip: {
	        trigger: 'axis',
	        axisPointer: { type: 'shadow' }
	    },
	    grid: {
	        left: '3%',
	        right: '4%',
	        bottom: '3%',
	        containLabel: true
	    },
	    xAxis: [
	        {
	            type: 'category',
	            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
	            axisTick: { alignWithLabel: true }
	        }
	    ],
	    yAxis: [{ type: 'value' }],
	    series: [
	        {
	            name: '直接访问',
	            type: 'bar',           
	            data: [10, 52, 200, 334, 390, 330, 220]
	        }
	    ]
	};	

	myChart.setOption(option);
}
  • 更新图表数据
// 更新柱状图
function updateBarChart(data) {
	const getLineChartInstance = echarts.getInstanceByDom(unref(barRef)!);
	getLineChartInstance && getLineChartInstance.setOption({ series: [{ data }] });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值