背景
- 目前开发的这个小程序需要做个动态生成图表,但是按照官方案例搞出来的不是动态,经过1天研究后发现有如下特性。
解决方法
- 在wxml的canvas标签里,通常会有个
bind:init="yyyy"
属性,这个属性绑定的yyyy函数会收到canvas初始化所需要的三个参数:e.detail.canvas,e.detail.width,e.detail.height
,这三个参数其实就是图表生成的位置。 - 目前各个页面私有属性的data在离开页面和进入时候会重置,而这个bind:init如果不是重新加载的话再回到此页面是不会运行绑定的yyyy函数。而onshow或者component的show每次显示就会运行。所以需要把获取的这三个参数绑定到全局变量上,下次动态生成图表时这三个参数直接去全局去拿。
- 生成canvas是通过initchart函数产生的,这个函数里面需要传我们自己的数据,包括一些动态数据,如果是动态图表,可以把数据扔到data或者其他地方,然后每次变更后更新initchart里的data,再去执行这个函数,所需要1里面的3个参数就去全局拿。