Vuex helper mapMutations
может использоваться с функцией, которая работает с this
.
Кажется, что нет документа для этого, но модульный тест Vuex helpers.spec.js иллюстрирует шаблон.
const vm = new Vue({
store,
methods: mapMutations({
plus (commit, amount) {
commit('inc', amount + 1)
}
})
})
В качестве бонуса функция позволяет передавать параметр в мутацию, что является распространенным требованием.
Ваш код будет изменен:
export default {
props: {
store: String
},
methods: {
...mapMutations({
changeModel(commit) { commit(`${this.store}/changeModel`) }
})
}
}
Вызов в вашем компоненте просто changeModel()
- mapMutations позаботятся о введении параметра commit
.
Обратите внимание, я не уверен, что это добавляет много, кроме некоторого дополнительного шума (по сравнению с простым this.$store.commit()
), но, возможно, ваше требование сложнее, чем пример кода.