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

时间:2018-07-13 12:09:38

标签: vue.js vuejs2 vuex

在Vuex中,我有两个要使用相同功能进行变异的状态。是否有任何方法可以传递您想要突变的确切状态,因此在mutations中,我不必多次重复相同的功能即可工作?

我现在拥有的

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

//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;
  }
}