- 使用的场景:
在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指向问题,即方法调用方法时,如果方法很多地方都调用的话,推荐使用第二种,第一种当方法公用时还需要修改,如果只是是单个调用,方法一推荐使用。