2022-10-27 关于uniapp小程序使用echarts-for-weixin过程中,初始化图表this.selectComponent为null的问题

前言:wepy小程序项目转uniapp小程序,在做图表的业务时,出现了如题目所言的问题。

原因:编译后的xxx.json文件中的usingComponents没有引入你的echarts-for-weixin组件。

原因排查过程这里先不记录,总的而言我认为是uniapp在编译的时候没有把echarts-for-weixin编译到小程序的dist包里面,从而导致this.selectComponent拿不到值。

解决方案:如果是,这里有个前提,如果是你的情况和我上面说的一致,那么你可以尝试一下手动在你的业务代码中添加上echarts-for-weixin。

举个例子:

xxx.json

{
  "usingComponents": {
    "ec-canvas": "/components/ec-canvas/echarts"
  }
}    

不要以为这就结束了,你会发现你重新编译小程序后,这段代码又消失了,是的它被删除了。

最后:你还得把echarts-for-weixin的包放在小程序的dist里面;以上修改均在小程序的dist包里面修改。

最后的最后:wepy项目编译小程序打包就没问题,转成uniapp后,这个echarts-for-weixin包反倒不能被编译过去了。

=================================若干分钟后=============================================

关于uni为什么没有把echarts-for-weixin编译到微信小程序的dist包中的原因:如果你是这么引用echarts-for-weixin:

import * as echarts from "../echarts-for-weixin";

而且你没有在业务代码中的comonents中引用该插件,那么你需要找到项目中的pages.json文件,找到该业务代码所对应的文件,添加如下代码:

{
            "path": "业务代码所对应的页面",
            "style": {                "usingComponents": {
                    "ec-canvas": "../echarts-for-weixin"
                }
            }

},

看到usingComponents了没有,你只需要在这里添加echarts-for-weixin进来,下次编译就可以被打包进去了。

啊噢。。。好累、、、、

posted @ 2022-10-27 15:21  叶乘风  阅读(920)  评论(0编辑  收藏  举报