在Mixins Vuejs中找不到功能

时间:2019-03-02 10:57:59

标签: vuejs2 mixins

你好,我有一个组件:

<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 TypeError:this.fileChanged不是   功能

我也尝试过用以下方式更改我的mixin:

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

但它不起作用。

我怎么了?

3 个答案:

答案 0 :(得分:0)

尝试从混入中删除数据块,或从其中返回一个空对象。

答案 1 :(得分:0)

应计算Mixin:

export default {
    data () {},
    computed: {
         fileChanged(file){
              if(file){
                   this.itemImage = file;
                   this.previewImage  = URL.createObjectURL(file);
              }
          }
      }
 }

答案 2 :(得分:0)

对于其他开发人员。

我已经解决了。

问题是我的Mixins文件扩展名错误。

我放置了 Mixin.vue 而不是 Mixin.js ,谢谢大家的回答。