如何在组件中使用Vue mixin方法

Nos*_*Pix 3 javascript vue.js vue-component vuejs2 vue-mixin

我试图在 Vue.js v2.x 中创建一个 mixin,但每次我调用它的方法之一时,控制台都会显示错误:

TypeError: mixins_settings_js__WEBPACK_IMPORTED_MODULE_3 _.default.loadSettings 不是 eval 处的函数 (Login.vue?7463:102)

/src/mixins/setting.js

import vuex from "@/plugins/vuex.js"
import menu from "@/settings/menu.json";

export default {
  methods: {
    _traverse(jsonObj) {...},
    loadSettings() {
      this._traverse(menu);
      ...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

/src/components/Login.vue

...
import settings from "@/mixins/settings.js"

export default {
  mixins: [settings],
  data() {
    return {...};
  },
  methods: {
    onSubmit() {
      ...
      settings.loadSettings();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

Dan*_*Dan 7

使用与本地定义属性相同的语法访问 mixin 的属性。换句话说,使用this而不是 mixin 对象:

methods: {
  onSubmit() {
    this.loadSettings();
  }
}
Run Code Online (Sandbox Code Playgroud)