this.$refs.upload.submit(); не возвращает элемент ответа-пользовательский интерфейс

#javascript #vue.js #element-ui

Вопрос:

Я использую элемент пользовательского интерфейса и загружаю файл с:

 this.$refs.upload.submit();
 

Как я могу получить ответ от this.$refs.upload.submit(); ?

Я уже пытался:

 .then(response => {
    this.success = true;
})
.catch(errors => {
    if(errors.status === 422 amp;amp; this.hasError('Exists')) {
        this.Link= true;
    }
    this.success = false;
})
 

Я знаю submit() , что нужно какое-то обещание. Я просто не знаю, что изменить, я просто хочу получать сообщения об ошибках.

Ответ №1:

Я не знаком с пользовательским интерфейсом элементов, но у пользовательских компонентов почти всегда есть события, которые запускаются при завершении определенных функций.

В этом случае, просматривая документацию: https://element.eleme.io/#/en-US/component/upload#upload Что вам нужно, так это on-success или on-error .

Поэтому вам просто нужно добавить функции в свой el-upload компонент:

 <el-upload
   :on-error="onError"
   :on-success="onSuccess">
 

И добавьте методы к вашему methods объекту в vue:

 methods: {
      submitUpload() {
        this.$refs.upload.submit();
      },
      onError(){
        console.log("error");
      },onSuccess(){
        console.log("success");
      }
}
 

Примером может быть:
https://codepen.io/Freshdachs/pen/LYjWpZo