Vuex 突变:使用 ES6 语法解构状态参数(使用类星体框架)

Vuex mutation: deconstruct state parameter using ES6 syntax (using quasar framework)

我有两种不同的语法。我可以使用 mapGetters() 和 mapActions() 访问我的 getters 和我的操作。第一个不解构状态参数并起作用。第二个确实解构了状态,但突变不会改变状态,而 getter 可以访问状态并且动作在解构上下文时没有问题。

我不明白为什么。 我是否滥用了 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')
  }
})

我的一个朋友给了我答案。我误用了 ES6。

{ counter2 } 不引用 state.counter2,而是复制它。

在更改counter2时无法更改state.counter2是有道理的。