admin管理员组

文章数量:1387455

I'm trying to create a mixin in Vue.js v2.x but every time I call one of its methods, the console shows an error:

TypeError: mixins_settings_js__WEBPACK_IMPORTED_MODULE_3_.default.loadSettings is not a function at 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);
      ...
    }
  }
}

/src/ponents/Login.vue

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

export default {
  mixins: [settings],
  data() {
    return {...};
  },
  methods: {
    onSubmit() {
      ...
      settings.loadSettings();
    }
  }
}

Where am I wrong?

I'm trying to create a mixin in Vue.js v2.x but every time I call one of its methods, the console shows an error:

TypeError: mixins_settings_js__WEBPACK_IMPORTED_MODULE_3_.default.loadSettings is not a function at 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);
      ...
    }
  }
}

/src/ponents/Login.vue

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

export default {
  mixins: [settings],
  data() {
    return {...};
  },
  methods: {
    onSubmit() {
      ...
      settings.loadSettings();
    }
  }
}

Where am I wrong?

Share Improve this question edited Feb 24, 2021 at 21:25 Dan 63.2k18 gold badges111 silver badges119 bronze badges asked Feb 24, 2021 at 20:50 NosPixNosPix 691 silver badge10 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 7

Access a mixin's properties using the same syntax as when defining properties natively. In other words, use this instead of the mixin object:

methods: {
  onSubmit() {
    this.loadSettings();
  }
}

本文标签: javascriptHow to use Vue mixin methods in the componentStack Overflow