suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wie ruft Vuex Aktionen auf der Seite auf?

Seitencode

methods: {
    ...mapActions(['addList', 'delList']),
    add (value) {
      this.addList({title: value})
    },
    del (item) {
      this.delList(item)
    }
}

Code in Aktionen

import * as types from './mutations'
export const addList = ({commit}, item) => {
  commit(types.ADD_LIST, item)
}    
export const delList = ({commit}, item) => {
  commit(types.DELETE_LIST, item)
}

Aber die Ausführung meldet [vuex] Erwartet einen String als Typ, aber die Funktion wurde gefunden. Vielen Dank. Wenn Sie den obigen Code in den folgenden Code ändern, kann er ausgeführt werden

methods: {
    add (value) {
      this.$store.commit('ADD_LIST', {title: value})
    },
    del (item) {
      this.$store.commit('DELETE_LIST', item)
    }
}
我想大声告诉你我想大声告诉你2857 Tage vor820

Antworte allen(3)Ich werde antworten

  • 黄舟

    黄舟2017-05-19 10:41:52

    methods: {
        add (value) {
          this.$store.commit('ADD_LIST', {title: value})
        },
        del (item) {
          this.$store.commit('DELETE_LIST', item)
        }
    }

    问一下,你说这段代码可以执行达到效果,那为什么不是this.$store.commit(types.DELETE_LIST, item)?

    你actions.js中都用了types,是不是mutation-types.js文件出了问题呢?

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:41:52

    export const addList = (commit) => (item) => {
      commit(types.ADD_LIST, item)
    } 
    

    没用过vuex,不过如果和Redux差不多的话,应该是这么用。

    Antwort
    0
  • 黄舟

    黄舟2017-05-19 10:41:52

    找到问题的答案了,感谢楼上的提醒,actions.js文件应该改成下面这样

    export const addList = ({commit}, item) => {
      commit('ADD_LIST', item)
    }    
    export const delList = ({commit}, item) => {
      commit('DELETE_LIST', item)
    }

    或者还是用之前的写法,但是要新建一个mutation-types.js文件

    export const ADD_LIST = 'ADD_LIST'
    export const DELETE_LIST = 'DELETE_LIST'

    actions.js

    import * as types from './mutation-types'
    export const addList = ({commit}, item) => {
      commit(types.ADD_LIST, item)
    }    
    export const delList = ({commit}, item) => {
      commit(types.DELETE_LIST, item)
    }

    Antwort
    0
  • StornierenAntwort