2

我有一个名为“csv”的模块,用于处理 csv 文件,还有一个vue -tables-2vuex

店铺结构:

-store
 -modules
   -csv.js
 -index.js

index.js:

Vue.use(Vuex)

    const store = new Vuex.Store({
        modules: {
            commons,
            ldap,
            csv <---- I want to execute the mutation in this module
        },
        mutations: {
            ["csvTable/ROW_CLICK"](state, data){
               <---- but now it's running here
            },
        }
    })

csv.js

// initial state
const state = {
    //...
}

// getters
const getters = {
    //...
}

// mutations
const mutations = {
    ["csvTable/ROW_CLICK"](state, data){
       < ---I want to execute the mutation here
    }
}

export default {
   //...
}

所以我想知道如何在 csv 模块中执行 ROW_CLICK 突变。

我以为我可以这样做:

index.js:

  ["csvTable/ROW_CLICK"](state, data){
       this.commit(csv/ROW_CLICK, data);
  },

但我认为这不是最好的方法。

谢谢你。

4

1 回答 1

1

学习使用动作。建议始终通过动作执行您的突变。

csv.js 中添加如下操作:

   actions: {
     callMutation({commit}, pass_property){ //pass_property is passed to action
       commit('the_mutation_you_want_to_Call',pass_property)
     }
   }

提交突变的操作也需要提交对象。但是,如果您愿意,在操作中您也可以使用 getter 和状态。见下文:

例子:

  actions: {
    actionName({commit,getters,state}) {}
  }
于 2018-04-03T16:49:43.227 回答