xiaolin3303/wx-charts

大佬,关于在自定义组件中实现绘图

liangshiwu opened this issue · 1 comments

在自定义组件中canvas组件注册无效,这个因为createCanvasContext方法是有两个参数,在page页面默认传了一个this,在组件里面需要手动传this。
所以修改一下才可以在自定义组件中使用,

this.context = wx.createCanvasContext(opts.canvasId, opts.that);

@liangshiwu 感谢提供的信息。
调整了代码,现在可以在自定义组件中使用了:

  1. 修改wxcharts.js源代码如下:
var Charts = function Charts(opts) {
  ...
  // this.context = wx.createCanvasContext(opts.canvasId); 为解决组件内不显示问题,替换为以下代码
  this.context = opts.that ? wx.createCanvasContext(opts.canvasId, opts.that) : wx.createCanvasContext(opts.canvasId);
  ...
}
  1. 组件中使用时:
new wxCharts({
  ...
  that: this  // 传递组件的this上下文
});
  1. 注意在自定义组件wxml中不能使用canvas的2d接口,不可以使用type="2d".