猿问

vuex mutations 报错?

在mutations中注册的setCart方法:

//store.js
mutations:{    setCart(state,foodIndex){
        Vue.set(state.goods.foods[foodIndex],"count",1);
    }
}

组件中提交mutations并使用setCart方法

//childComponent.vuemethods:{
    setCart(foodIndex){     
           this.$store.commit('setCart',this.foodIndex);
          },
    },
    
    
    addCartItem:function (event) {     
       if (!this.food.count){       
          this.setCart(this.foodIndex);
        }else{         
         this.addCart(this.foodIndex)     
              return
        }
      },

结果会报错,this.foodIndex is undefined ,在created中console了this.foodIndex,结果正常,我直接传数值给setCart:

this.addCart(0)

依然会报错:this.foodIndex is undefined
会不会我在store.js注册的mutations方法不对?


拉丁的传说
浏览 1317回答 2
2回答

largeQ

addCartItem:function (event)改成addCartItem (event)试试

qq_笑_17

首先,贴一下 你定义 this.foodIndex 的代码,确定你有定义这个变量其次,贴出来的methods的代码有问题建议改为methods:{    setCart (foodIndex){        this.$store.commit('setCart', foodIndex);    },    addCartItem (event) {        if (!this.food.count){          this.setCart(this.foodIndex);        }else{          this.addCart(this.foodIndex)          return        }    }如果还有问题,请贴出更详细的代码
随时随地看视频慕课网APP
我要回答