В компонентах Vue я могу легко использовать импортированные библиотеки, такие как vue-router
.Я могу получить доступ к нужному параметру маршрута с помощью this.$route.params.myVar
.Однако, если я пытаюсь сделать то же самое в модуле Vuex, я получаю ошибку: TypeError: Cannot read property 'myVar' of undefined
.Как я могу расширить объект Vue, который я определил в моем main.js
, на мои модули?
Вот мои main.js
:
import router from './router'
import Vuex from 'vuex'
import myModule from './my.module';
Vue.use(Vuex)
// Register VueX modules
const store = new Vuex.Store({
modules: {
myModule
}
})
new Vue({
router,
render: h => h(App),
store
}).$mount('#app')
И my.module.js
:
export default {
namespaced: true,
state: {
...
},
mutations: {
...
},
actions: {
someAction() {
console.log(this.$route.params.myVar)
}
}
}
Очевидно, this
не определен.Я попытался создать новый объект Vue в верхней части моего модуля следующим образом:
var vm = new Vue()
И изменив this
на vm
, но я получаю похожую ошибку Cannot read property 'myVar' of undefined
.Я также попытался повторно создать экземпляр класса route
в модуле:
import route from 'vue-router'
и изменить код ошибки на route.params.myVar
, но все равно получаю ошибку Cannot read property 'myVar' of undefined
.