Проверить наличие мутации или действия в VUEX
Как можно проверить наличие мутации или действия в хранилище vuex? Хотелось бы, конечно иметь что то вроде такого, но не нашел:
Например из компонента
this.$store.has('commit','MUTATION_NAME')
Или из самого хранилища, из действия
actions: {
SET_CURRENT_ACCOUNT (context, payload) {
context.has('dispatch','ACTION_NAME')
}
}
Ответы (1 шт):
Автор решения: Дмытрык
→ Ссылка
const module1 = {
state: {
name: "Ivan"
},
mutations: {
SET_NAME: (state, payload) => {
state.name = payload;
}
}
};
const module2 = {
state: {
age: 10
},
mutations: {
SET_AGE: (state, payload) => {
state.age = payload;
}
}
};
const store = new Vuex.Store({ modules: { module1, module2 } });
store.checkMutation = function(name) {
return Object.keys(this._mutations).includes(name);
};
new Vue({
store,
el: "#app",
created() {
console.log(this.$store.checkMutation("SET_NAME"));
console.log(this.$store.checkMutation("TEST"));
}
});
<script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
<script src="https://unpkg.com/[email protected]"></script>
<div id="app"></div>