首页 > 解决方案 > 无法在 onUploadProgress 事件中访问 data() (axios)

问题描述

data()当我在时,我无法访问我的任何数据onUploadProgress。它每次都返回“未定义”。

<template>
    <el-upload ref="upload"></el-upload>
    <el-button type="primary" :loading="isOnUploading" @click="submitUpload">{{ $t('add') }}</el-button>
</template>

export default {
    data() {
      return {
        isOnUploading: false,
    }
},

methods: {
   async uploadFile(event) {
        const data = new FormData();
        data.append('file', event.file);

        await  this.$axios.post(this.uploadUrl, data, {
            onUploadProgress: function (progressEvent) {
                console.log(this.isOnUploading); // Return undefined
            }
        });
    }

     submitUpload() {
        this.$refs.upload.submit();
      }
}

当我调用一个方法时,它给了我同样的问题,它告诉我它是未知的。

为什么 ?

标签: javascriptvue.jsaxiosnuxt.js

解决方案


绑定你的 vue 实例:

    await this.$axios.post(this.uploadUrl, data, {
        onUploadProgress: function (progressEvent) {
            console.log(this.isOnUploading); 
        }.bind(this)
    });

推荐阅读