Taro QRコード生成および保存失敗問題レコード

5640 ワード

生成
Weapp-qrcodeライブラリを使用して、メソッドを呼び出します.

import { qrcode as drawQrcode } from '../../utils'
drawQrcode({ width: 200, height: 200, canvasId: 'myQrcode', _this: this.$scope, text: url });

以上は問題ありませんが、がマウントされた後にメソッドを呼び出すことに注意してください.
長押ししてQRコードとして保存onLongTapプロパティにマウント

saveImageメソッド:
async saveImage() {
        try {
            const res = await Taro.canvasToTempFilePath({
                canvasId: 'myQrcode',
                quality: 1
            })
            const saveRes = await Taro.saveImageToPhotosAlbum({
                filePath: res.tempFilePath
            })
            Taro.showToast({ title: '    ' })
        } catch (e) {
            console.log('error', e)
            Taro.showModal({ title: '  ', content: '      ' })
        }
    }

ここで直接保存に失敗しました.エラーメッセージ:canvasToTempFilePath: fail canvas is empty??を掛けて毛のためにemptyを返しますか?ウィジェットの公式ドキュメントを参照すると、2番目のパラメータthisが見つかり、以下のコードに変更すると正常に保存されます.
....
await Taro.canvasToTempFilePath({
               canvasId: 'myQrcode',
               quality: 1
           }, this.$scope)
...