Javascript 在Vuex中创建突变和动作?

Javascript 在Vuex中创建突变和动作?,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我的组件中有几个方法,我想将它们转移到Vuex存储中,作为突变/动作使用,但我不太确定我将如何使用它们,因为它们都是方法,我在另一个方法中调用一个方法,我知道我不能对突变执行此操作,即在另一个方法中调用一个突变。我试图设置一个动作并调用我的变异,但我得到了一个错误 检查这项工作,它设置了我想要进入Vuex的方法 这就是使用vuex实现上述功能的过程 下面是我想进入Vuex商店的工作示例,与上面的代码笔相同:- 新Vue{ el:应用程序, 资料{ 返回{ 选定:[], 动物学家:[], 更多动

我的组件中有几个方法,我想将它们转移到Vuex存储中,作为突变/动作使用,但我不太确定我将如何使用它们,因为它们都是方法,我在另一个方法中调用一个方法,我知道我不能对突变执行此操作,即在另一个方法中调用一个突变。我试图设置一个动作并调用我的变异,但我得到了一个错误

检查这项工作,它设置了我想要进入Vuex的方法

这就是使用vuex实现上述功能的过程

下面是我想进入Vuex商店的工作示例,与上面的代码笔相同:-

新Vue{ el:应用程序, 资料{ 返回{ 选定:[], 动物学家:[], 更多动物:[{ 标题:猫, 价值:猫 }, { 标题:狗, 价值:狗 }, { 标题:骆驼, 价值:骆驼 }, ] }; }, 方法:{ createTitle{ 对于let i=0;i只需将getAnimalName转换为getter:

getters: {
  // ...
  getAnimalName: (state) => (title) => {
      let lastAnimal = null;
      for (let i = 0; i < state.animalList.length; i++)
        if (state.animalList[i].title === title)
          lastAnimal = state.animalList[i];
      let index = lastAnimal ? Number(lastAnimal.value.split(" ")[1]) + 1 : 1;
      return title + " " + index;
  }
},
mutations: {
  setSelected(state, payload) {
    state.selected = payload;
  }.
  addToList(state, animal) {
    state.animalList.push(animal)
  }
},
actions: {
    createTitle({ commit, state, getters }) {
      for (let i = 0; i < state.selected.length; i++) {
        let currentSelected = Object.assign({}, state.selected[i]);
        if (currentSelected.title !== "camel")
          currentSelected.value = getters.getAnimalName(currentSelected.title);
        commit('addToList', currentSelected);
      }
      commit('setSelected', []);
    }
  }

我该如何称呼这个getter呢?在一个变种中还是在一个动作中?我没有注意到getAnimalName在createTitle中被使用。好的,我会修改我的答案。非常感谢你!!