1

我有两种不同的语法。我可以使用 mapGetters() 和 mapActions() 访问我的 getter 和我的操作。第一个不解构状态参数并且有效。第二个确实解构了状态,但突变不会改变状态,而 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')
  }
})
4

1 回答 1

1

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

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

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

于 2018-09-07T13:12:46.977 回答