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 badges1 Answer
Reset to default 7Access 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();
}
}