记录一个十分奇葩的Echarts绘图问题

229 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

今天用Echarts给后台做了个可视化大屏,然后就遇到个特奇葩的问题,解决问题的方法也很有意思,记录下来。其实就是echarts.min.js的版本问题。也给大家提个醒,很可能你的代码没问题,但你引用的包有问题。

一、遇到的问题

想做一个饼状图,因为我这个留的空格是一个长方形的,所以想把饼状图放到左边,legend搞到右边去。类似这种

image.png

但是,一写才发现效果是这样的。

尽管right设置了50%,但是实际上他还是居中的,甚至我设置成90%,他的位置纹丝不动。 image.png image.png

最让人尴尬的是,他在ECHARTS官网的编译器中是没问题的,真的百思不得其解。

image.png

二、解决路径

  1. 我首先想到的是在css文件中有什么奇怪的设置覆盖了我在echarts中options的配置。

image.png

但是经过排查,也不是css的问题。这个时候真的让人抓狂,别人没问题,我有问题,你在针对我?

当然这个时候我还是抱有侥幸心理以为是其他地方有什么css配置我没看到,经过不下三次的全局搜索也放弃了这个想法。

  1. 我采用了程序员最擅长的鸵鸟策略来解决这个问题,先晾着他。万一他自己好了呢?

很明显经过一天一夜他没有自动修复好,看来他还不是一个成熟的框架,都不会自动修复bug,差评!

  1. 我又去官方文档里面找这个局面可能出现的原因

其实这个时候我已经认为是我动了奇奇怪怪的东西,导致echarts的配置出现了bug。

后来我就去echarts官方文档里面找这个配置相关联的东西。最后一个小提示给了我灵感!!!

image.png

有没有一种可能,我引入的echarts.js是旧版本的,而旧版本没有right这个配置?

image.png

我当时点进去,看到有这个配置人都傻了,难道真的是我自己才会有的bug?

保证程序猿不撞南墙不死心的态度,我去试了试引入最新版的echarts.js。然后bug就解决了。

总结

有一说一,虽然通过换引入的echarts.min.js解决这个问题,可以看出来应该是版本的问题,但是旧版的也有这个配置,我是真的不明白他的原理。

只能说应该是旧版本遗留的bug在新版本修复了吧。

所以,这个故事告诉我们,很多时候不要光从自身找原因,万一不是你代码的问题,是版本的问题呢?