小程序中通常使用canvas,直接在page页面使用
ready(){ const ctx = wx.createCanvasContext('canvas') ctx.setFillStyle('blue') ctx.fillRect(20, 20, 50, 65) ctx.draw(); }
在子组件使用失效原因(准确来说是线条设置颜色失败)
canvas组件注册无效,这个因为createCanvasContext方法在page页面默认传了一个this,在组件里面需要手动传this。同时生成画布的时候wx.canvasToTempFilePath也要传入this,如下面的代码
传入this即可使用
const ctx = wx.createCanvasContext('canvas',this); wx.canvasToTempFilePath({ canvasId:'canvas', success: function(res) { }, fail:(e)=>{} },this)