#javascript #function #vue.js #vue-component #vuex
#javascript #функция #vue.js #vue-компонент #vuex
Вопрос:
Я не могу отправить действие с помощью vuex без совершения мутации.
Я импортировал обычные mapActions и т. Д. как всегда (имейте в виду, что все работает правильно, я могу выполнять мутации, геттеры, получать свое состояние с помощью mapMutations, mapActions и т. Д., Я даже могу отправлять действия, ЕСЛИ я включаю фиксацию).
Для самой простой вещи я создал действие в своем выделенном store/actions.js .
repeatWord(data) {
console.log(data)
}
в моем компоненте vue я определил его следующим образом:
methods: {
...mapActions({
repeatWord: 'repeatWord'
)}
и я вызываю это через:
this.repeatWord('test')
Должно сработать, верно? Ну, это не так.
То, что я получаю в консоли, это {getters: {…}, состояние: {…}, rootGetters: {…}, отправка: f, фиксация: f, …}
Чего мне здесь не хватает?
Ответ №1:
Из документации:
Обработчики действий получают объект контекста, который предоставляет тот же набор методов / свойств в экземпляре хранилища
Это входит в качестве первого аргумента. Второй аргумент — это ваши переданные данные. Итак, определите свое действие следующим образом:
repeatWord(context, data) {
console.log(data)
}
Часто вы увидите, что context
аргумент деструктурирован как:
repeatWord({ commit, dispatch }, data) {
console.log(data)
}