关于Uncaught TypeError (Cannot read property ..undefined)的解决办法

一、问题描述

     在Vue 的函数中使用 this.$store.commit出现Uncatch TypeError 的情况.
问题截图
在这里插入图片描述
二、解决思路

1.进行使用检查查看报错信息,之前浏览器默认Safari浏览器,好像没有看到检查工具,出问题或者空白页面就不知道咋排错,后面才使用谷歌,使用查看进行排错。

2.分析报错信息:Uncaught TypeError;凭借英语能力猜测是不是拼写错误(哈哈哈,代码能力还比较底,不过英语好还是有助于排错,对于英语基础差的朋友,也记得多学学英语罗),然后查看了之后拼写没有错误。。 接着思考,报错还有undefined,是不是因为声明问题呢??检查了一下main.js的引用,然而并没有问题。后面查了几篇博文,找到了答案,原来是函数形式不对,应该使用=>函数

科普一下
(1)普通函数:调用时被决定。
根据调用我的人(谁调用我,我的this就指向谁)

...
methods:{
F(){ 
console.log()
}
}

this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this指向的是window;当函数被作为某个对象的方法调用时,this就等于那个对象

(2)箭头函数:定义时被决定。
根据所在的环境(我在哪个环境中,this就指向谁),Arrow functions bind the parent context。

()=>{
}

(3)匿名函数:匿名函数的执行环境是全局性的。
匿名函数中this指向window

function(){
}

总结,使用this.$router一类调用时,注意this的对象,和函数的选择

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值