Wxml2Canvas在组件中的渲染获取不到元素问题
在组件中使用Wxml2Canvas时,可能会出现无法获取DOM元素导致图片生成失败的问题。这可能是由于组件内部的bug引起的。
问题根源在于初始化时配置参数的赋值方式:
this.object = options.obj;
this.obj = options.obj; // 解决方案
但在插件在获取wxml时判断条件使用的是this.obj:
if(this.obj) {query = wx.createSelectorQuery().in(this.obj);
} else {query = wx.createSelectorQuery();
}
解决方案:可以在constructor中同步为this.obj赋值:
constructor (options = {}) {this.device = wx.getSystemInfoSync && wx.getSystemInfoSync() || {};if (!options.zoom) {this.zoom = this.device.windowWidth / 375;} else {this.zoom = options.zoom || 1;} ...this.element = options.element;this.object = options.obj;this.obj = options.obj;...this._init();
}