• 使用的场景:
    这里写图片描述
    在open_show中调用update_info的时候出现undefined
  • 解决的思路:
    刚开始接触vuex,碰到这个问题,首先就是搜索一下,别人的一般都是this.$store.state为undefined,还是没有什么思路,然后我看了一下项目中别人写的代码中就可以调用,再看下目录,难道和目录有关,试了一下,并没有什么作用,就换种思路,打印了一下this,发现this的指向出现问题。
  • this指向的解决方法
    第一种:

methods: {
      update_info:function(self,data){
        alert(self.$store);
        self.$store.commit("info",data);
      },
      open_show: function () {
	     var self =this;
       this.update_info(self,this.flag);
       }
   }

第二种:


var self =this;
  export default {
	  methods: {
	      update_info:function(data){
	        alert(self.$store);
	        self.$store.commit("info",data);
	      },
	      open_show: function () {
	       this.update_info(this.flag);
	       }
       },
     created(){
		  self = this;
  }
}

当然以上的方法是解决特定场景下的this指向问题,即方法调用方法时,如果方法很多地方都调用的话,推荐使用第二种,第一种当方法公用时还需要修改,如果只是是单个调用,方法一推荐使用。

Logo

前往低代码交流专区

更多推荐