最近上手uniApp,正常使用echarts的时候编译小程序发现报错,后来网上查了一下相关的资料和教程发现有好多都说的比较笼统,我把自己踩坑的经历分享一下,后续方便你们根据情况知道怎么去排查,好了,话不多说,开干!
首先第一步,这里我使用的是mpvue-echarts(github.com/avocadowang…)
这里可以随便单独新建一个文件夹,然后把这个下载到这个文件夹,进入node_modules/mpvue-echarts目录,删除除src外的其他文件,如下:
第二步,因为微信小程序主包大小限制,最好是去定制Echarts包;地址(echarts.apache.org/zh/builder.…)
勾选自己图标需要的图标类型,注意目前版本一定要选择5.1.2版本,因为小程序echarts插件文档 v2.1.1 默认是5.1.2版本。高版本的目前是不匹配,不报错也不会显示图标;
勾选完成后勾选代码压缩和工具集,点击下载按钮,等待即可;
第三步:在自己的uniApp项目里边新建components目录;新建common目录
将第一步的mpvue-echarts文件夹拖到components目录下,将第二步下载下来的
echarts.min.js放入components/common目录下;最终如下
第四步:打开components下的echarts.vue文件
新增
import * as echarts from "@/components/common/echarts.min.js";//这里根据自己存放的路径修改
注释props中的echarts;
在onReady方法中添加
this.echarts = echarts
init方法中修改以下3处 const canvasId = this.canvasId;//修改
this.ctx = wx.createCanvasContext(canvasId,this);//修改
wx.createSelectorQuery().in(this); //修改
最终效果如下:
接下来可以正常使用了,可以先验证一下是否正常;在自己的页面里边引入组件,把对应的静态数据随便拉一份测试,这里我随便找了份数据:
对应图表的类型文档里有很多demo可供大家参考;注意修改文件引入路径
测试正常的话就可以用起来了;如果数据是接口请求可以参考文档的lazyLoad.vue demo文件,也可以先实例然后chart.setOption(xx)重新加载;
注意****不要把 chart 实例赋值到 this(vue 实例) 上;