Javascript Can';在onUploadProgress事件(axios)中访问数据()

Javascript Can';在onUploadProgress事件(axios)中访问数据(),javascript,vue.js,axios,nuxt.js,Javascript,Vue.js,Axios,Nuxt.js,在onUploadProgress中时,我无法访问data()中的任何数据。它每次都返回“未定义” <template> <el-upload ref="upload"></el-upload> <el-button type="primary" :loading="isOnUploading" @click="submitUpload">{{ $t('

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

<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();
      }
}

{{$t('add')}
导出默认值{
数据(){
返回{
等积:假,
}
},
方法:{
异步上载文件(事件){
const data=新表单数据();
data.append('file',event.file);
等待此消息。$axios.post(this.uploadUrl,data{
onUploadProgress:函数(progressEvent){
console.log(this.isOnUploading);//返回未定义
}
});
}
submitUpload(){
这是。$refs.upload.submit();
}
}
当我调用一个方法时,它给了我同样的问题,它告诉我它是未知的


为什么?

绑定您的vue实例:

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

您的大括号嵌套不正确。您是在return语句之后定义这些函数的。@str这是Stackoverflow中的一个编码错误,我已修复了它,谢谢这回答了您的问题吗?