Vuex - 将特定状态作为参数传递

Vuex - Passing specific state as a parameter

在 Vuex 中,我有两个状态想用相同的函数进行变异。有没有什么方法可以传递你想要改变的确切状态,这样在 mutations 中我就不必重复同一个函数几次就可以工作了?

我现在拥有的

state: {
    firstparam:'',
    secondparam:''
},
mutations: {
  addLimit: function (state, payload) {
    state.firstparam = payload;
  },
  addSecondLimit: function (state, payload) {
    state.secondparam = payload;
  }
}

提前致谢!

您可以将要更改的参数名称作为 属性 传递到有效负载中。

//to mutate firstparam
StorageEvent.commit('addLimit', {prop: 'firstparam', value: 'change'})

//to mutate secondparam
StorageEvent.commit('addLimit', {prop: 'secondparam', value: 'change'})

并使用 prop 属性 的有效负载来改变特定的 属性

state: {
  firstparam:'',
  secondparam:''
},
mutations: {
  addLimit: function (state, payload) {
    state[payload.prop] = payload.value;
  }
}