为了账号安全,请及时绑定邮箱和手机立即绑定

如何将值从函数传递到 VueJs 中的变量?

如何将值从函数传递到 VueJs 中的变量?

largeQ 2022-06-09 16:15:16
我正在获取图片网址的 base64。当我将getImage 函数传递给savepdf函数并尝试将回调函数 base64_data 存储在变量中时,它会引发错误无法设置 undefined 的属性“base64logo”。如何将值从回调函数传递给变量?希望你能理解我的问题。          data() {            return {               base64logo: '',            }           },            methods: {            getImage(url, callback) {                var img = new Image();                img.crossOrigin = 'Anonymous';                img.onload = function () {                    var canvas = document.createElement('CANVAS');                    console.log('canvas', canvas)                    var ctx = canvas.getContext('2d');                    var dataURL;                    canvas.height = this.height;                    canvas.width = this.width;                    ctx.drawImage(this, 0, 0);                    dataURL = canvas.toDataURL();                    callback(dataURL);                    canvas = null;                };                img.src = url;            },            savepdf() {                this.getImage(this.clientDetails.company_logo, function (base64_data) {                    console.log('base64_data', base64_data);                    this.base64logo = base64_data; //Error HERE                });                     var doc = new jsPDF('p', 'pt', 'a4');                    doc.setFontSize(9);                    doc.addImage(this.base64logo, 'PNG', 150, 10, 40, 20); //Have to pass here.              }       }
查看完整描述

1 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

您应该使用箭头函数()=>{...}来访问this组件实例:


 this.getImage(this.clientDetails.company_logo,  (base64_data) =>{

                    console.log('base64_data', base64_data);

                    this.base64logo = base64_data; //Now you could access this

                });

或分配this给全局变量:


let that=this

 this.getImage(this.clientDetails.company_logo,  function(base64_data){

                    console.log('base64_data', base64_data);

                    that.base64logo = base64_data; //Now you could access this

                });


查看完整回答
反对 回复 2022-06-09
  • 1 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号