直接上代码

const reader = new FileReader()

//正确的代码
reader.onload = e => {
    let data;
    if (typeof e.target.result === 'object') {
        // 把Array Buffer转化为blob 如果是base64不需要
        data = window.URL.createObjectURL(new Blob([e.target.result]));
    } else {
        data = e.target.result;
    }
    this.cropperImg = data;
    console.log(this.cropperImg)
};
//错误的代码
reader.onload = function(ev) {
    let data;
    // 1.1文件读取完成
    if (typeof ev.target.result === 'object') {
        // 把Array Buffer转化为blob 如果是base64不需要
        data = window.URL.createObjectURL(new Blob([ev.target.result]));
    } else {
        data = ev.target.result;
    }
    this.cropperImg = data;
    console.log(this.cropperImg)
}

关键:箭头语法没有自己的this

箭头函数语法:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Arrow_functions

总结:主要是没有认真的学过 js 的基础语法,也很少用 js 开发,导致一个小问题搞了很久没搞定,熬夜把自己熬死了,很多时候都是这样子,开发 flutter 的时候也是这样

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注