<wxml-to-canvas class="widget" width="{{widgetWidth}}" height="{{widgetHeight}}" ></wxml-to-canvas>
data:{
widgetWidth:'',
widgetHeight:'',
}
onload(){
var that = this
var systemInfo = wx.getSystemInfoSync();
var widgetWidth = that.data.widgetWidth;
var widgetHeight = that.data.widgetHeight;
if(systemInfo){
that.setData({
widgetWidth:systemInfo.windowWidth,
widgetHeight:1.5*systemInfo.windowWidth
})
}
}
初始时,widgetWidth和widgetHeigh设置为空不行,如果设置值,最后画出来的也就是设置的值,setdata的不管用,但是canvas使用的是px,不是动态,需要根据手机实际尺寸来调整,求解决方案,也不算setdata不成功,实际是成功了的,但是在画的过程中又使用初始值。
下面是报错:
Error: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image argument is a canvas element with a width or height of 0.
我正好在做一个不定高度分享海报的需求,也遇到你这个问题,这是因为attached初始化的时候就定死了。我用了个笨方法:
把/wxml-to-canvas/miniprogram_dist/index.js中的lifetimes下的attached()里面的方法放到你的自定义事件里面,你动态改变值之后再调用就行了