Я новичок в Vue JS, а также с Vuex.У меня проблемы с доступом к получателям магазина,
Вы можете видеть в получателе, Активировано верно, И в Моем получателе в store.js есть
getters: {
loggedIn(state) {
return state.token !== null
},
Activated(state) {
return state.activated;
},
Вы можете видеть, что активированное состояние также имеет значение true, но когда я получаю доступ с помощью
store.getters.Activated
, оно всегда возвращает false, но когда я получаю доступ к другому получателю, зарегистрированному тем же методом в той же функции, оно дает значение true.
store.getters.loggedIn
Где я пытался получить доступ к этому в
router.beforeEach((to, from, next) => {
if (to.matched.some(record => record.meta.requiresAuth)) {
if (!store.getters.loggedIn) {
next({
name: 'home',
})
} else {
next()
}
}
else if (to.matched.some(record => record.meta.requiresActivation)) {
debugger;
if (store.getters.Activated===true) {
next()
} else {
next({
name: 'activate',
})
}
}
else if (to.matched.some(record => record.meta.requiresVisitor)) {
if (store.getters.loggedIn) {
next({
name: 'activate',
})
} else {
next()
}
} else {
next()
}
})
мутация в магазине JS
mutations: {
updateFilter(state, filter) {
state.filter = filter
},
retrieveToken(state, token) {
state.token = token
},
CheckActivation(state, value) {
state.activated = value
},
destroyToken(state) {
state.token = null
}},
и действия
actions: {
CheckActivation(context){
if(this.token===null){
context.commit('CheckActivation', false)
return false;
}
else{
var settings = {
"async": true,
"crossDomain": true,
"url": "http://vuejs.test/api/user",
"method": "GET",
"headers": {
"Accept": "application/json",
"Authorization": "Bearer "+ this.state.token,
"cache-control": "no-cache"
}
}
$.ajax(settings).done(function (response) {
if(response.verified)
context.commit('CheckActivation', true)
else
context.commit('CheckActivation', false)
});
}
},
Пожалуйста, помогите.