Мутация Vuex: деконструкция параметра состояния с использованием синтаксиса ES6 (с использованием фреймворка quasar)

У меня два разных синтаксиса. Я могу получить доступ к своим геттерам и своим действиям с помощью mapGetters () и mapActions (). Первый не разбирает параметр состояния и работает. Второй действительно деконструирует состояние, но мутация не изменяет состояние, в то время как геттер может получить доступ к состоянию, и действие не имеет проблем с деконструкцией контекста.

Не понимаю почему. Могу ли я неправильно использовать ES6 / vuejs / vuex / quasar?

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    counter1: 0,
    counter2: 0
  },
  getters: {
    counter1: state => state.counter1,
    counter2: ({ counter2 }) => counter2
  },
  mutations: {
    increment1: state => state.counter1++,
    increment2: ({ counter2 }) => counter2++
  },
  actions: {
    increment1: context => context.commit('increment1'),
    increment2: ({ commit }) => commit('increment2')
  }
})

person Florian Pittet Comte Harbour    schedule 06.09.2018    source источник
comment
Вы увеличиваете только локальную переменную, а не свойство объекта.   -  person Bergi    schedule 07.09.2018


Ответы (1)


Мой друг дал мне ответ. Я неправильно использовал ES6.

{counter2} не ссылается на state.counter2, но делает его копию.

Имеет смысл, что я не могу изменить state.counter2 при изменении counter2.

person Florian Pittet Comte Harbour    schedule 07.09.2018