大佬,关于在自定义组件中实现绘图
liangshiwu opened this issue · 1 comments
liangshiwu commented
在自定义组件中canvas组件注册无效,这个因为createCanvasContext方法是有两个参数,在page页面默认传了一个this,在组件里面需要手动传this。
所以修改一下才可以在自定义组件中使用,
this.context = wx.createCanvasContext(opts.canvasId, opts.that);
xBinKai commented
@liangshiwu 感谢提供的信息。
调整了代码,现在可以在自定义组件中使用了:
- 修改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);
...
}
- 组件中使用时:
new wxCharts({
...
that: this // 传递组件的this上下文
});
- 注意在自定义组件wxml中不能使用canvas的2d接口,不可以使用type="2d".