Функция в Mixins Vuejs не найдена - PullRequest
0 голосов
/ 02 марта 2019

Здравствуйте, у меня есть компонент:

<template>
 <upload-btn 
   color="black" 
   title="Carica foto" 
   :fileChangedCallback="fileChange" />
</template>
<script>
import  fileUploadMixin from './../mixins/fileUploadMixin';
export default {
  name: 'compoment',
  mixins: [fileUploadMixin],
  components:{
    'upload-btn': UploadButton
  },
  data(){..},
  methods: {
    fileChange(file){
      this.fileChanged(file);
    }
   }
</script>

А затем мой Mixin:

export default {
  data () {

  },
  methods: {
    fileChanged(file){
      if(file){
        this.itemImage = file;
        this.previewImage = URL.createObjectURL(file);
      }
    }
  }
}

Проблема в том, что он возвращает эту ошибку, так как mixins не включен, но фактически импортирован.

vue.runtime.esm.js? 2b0e: 1878 Ошибка типа: this.fileChanged не является функцией

Я также пытался изменить свой миксин с помощью:

methods: {
    fileChanged: function(file){}
}

но это не работает.

В чем я не прав?

Ответы [ 3 ]

0 голосов
/ 03 марта 2019

Миксин должен быть вычислен:

export default {
    data () {},
    computed: {
         fileChanged(file){
              if(file){
                   this.itemImage = file;
                   this.previewImage  = URL.createObjectURL(file);
              }
          }
      }
 }
0 голосов
/ 05 марта 2019

Для других разработчиков.

Я решил.

Проблема заключалась в том, что мое расширение Mixins было неправильным.

Я поставил Mixin.vue вместо Mixin.js , спасибо всем за ответы.

0 голосов
/ 02 марта 2019

Попробуйте удалить блок данных из вашего миксина или вернуть пустой объект из него.

...