问题描述
想通过按钮触组件,组件负责发生成二维码。通过尝试,可以在本地缓存文件中成功生成临时图片,但是没有成功绘制此图片,小程序中调试报错:image load faild null。
以下是我的代码
const QRCode = require('../../utils/qrcode.js')
Component({
properties: {
qrCodeId: String
},
data: {
canvasHidden: false,
imagePath: ""
},
ready: function (options) {
var that = this;
var initUrl = 'https://www.sfatpaper.com?qrcode=' + this.properties.qrCodeId;
that.createQrCode(initUrl, 'mycanvas', 170, 170);
},
createQrCode: function(url, canvasId, cavW, cavH) {
var that = this;
QRCode.api.draw(url, canvasId, cavW, cavH);
setTimeout(() => {
that.canvasToTempImage();
}, 500);
},
canvasToTempImage: function() {
var that = this;
swan.canvasToTempFilePath({
canvasId: 'mycanvas',
success: function(res) {
var tempFilePath = res.tempFilePath;
that.setData({
imagePath: tempFilePath,
canvasHidden: true
});
},
fail: function(res) {
console.log(res);
}
});
}
});
请问此问题是为什么呢?还望在这里得到答案,谢谢诸位耐心的解答!
但是没有成功绘制此图片,你指的是生成的临时图片也出错,还是说页面没有显示?
没有显示位置的代码不能确定,但我想问题是你没有用 if 来判断 imagePath 是否有值,
于是在图片生成完毕之前,就爆出 image load faild null 读取空图片失败。