recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Que signifie l'écriture de fonction suivante?

Une fonction définie dans les mutations dans vuex et appelée dans le composant

//store.js在mutations中定义
addCart:function (state,{goodIndex,foodIndex}) {
    state.goods[goodIndex].foods[foodIndex].count++;
  },
//组件中调用
methods:{
    ...mapMutations(['addCart','removeCart','setCart']),
    addCartItem:function(){
        this.setCart({goodIndex:this.goodIndex,foodIndex:this.foodIndex});
    }
}
    

Ma question est de savoir pourquoi il n'est pas nécessaire de passer le paramètre state lors de l'appel de la fonction setCart. Visuellement, si le paramètre state n'est pas passé lors de l'appel, la fonction addCart passera automatiquement l'état dans le magasin lors de son exécution. Ce principe, qu'est-ce que c'est ? ? C'est le code que j'ai écrit il y a un demi-mois, mais maintenant je ne le comprends pas. .

我想大声告诉你我想大声告诉你2714 Il y a quelques jours740

répondre à tous(2)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-06-26 10:58:52

    Allez simplement regarder le code source et vous le saurez.

    export const mapMutations = normalizeNamespace((namespace, mutations) => {
      const res = {}
      normalizeMap(mutations).forEach(({ key, val }) => {
        val = namespace + val
        res[key] = function mappedMutation (...args) {
          if (namespace && !getModuleByNamespace(this.$store, 'mapMutations', namespace)) {
            return
          }
          
          // 在这里调用了commit方法
          return this.$store.commit.apply(this.$store, [val].concat(args))
        }
      })
      return res
    })

    Ce qui suit est la définition de la méthode de commit

    this.commit = function boundCommit (type, payload, options) {
        // store 就是你想要的答案
        return commit.call(store, type, payload, options)
    }

    répondre
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-26 10:58:52

    this.setCart() est mappé à this.$store.commit('setCart')

    répondre
    0
  • Annulerrépondre