搞笑的排错经历

学习某马第一个项目,在后台界面总是显示不出用户名(username或nickname)。但是打包缺没有错。

于是开始排错,首先怀疑是否后台没有传值,但是通过vue-devtools可以看到本地已经存储token了。所以排除后台没有传值的情况。

那开始怀疑是否是变量名写错了,或者函数调用出错,或是全局变量出错、导包出错?

首先想到api和request因为成功接收到了token ,大概率问题不在这儿。那么后台获取的这些信息肯定要作为全局数据存储,所以去看store下的user.js。看到导入的api和相关函数是正确的,于是就在想是否是store中的异步操作调用函数有没有用对,然后在调用处,打印res看能否获取后台的数据。发现确实可以打印出正常的参数。那就说明是获得后,处理过程中出问题了。因为要写到state中,必须要用mutation中的用户数据更新函数,找到这个函数,就在异步函数里面,找到了问题,更新函数的第二个参数应该是 获取的对象的属性(res.data)但是我写成了 (res.date)。问题解决。

但是为啥会写成res.date呢。我发现解构对象的时候用的是{data:res},让我想当然的排斥res.data的写法。解构对象其实 {A:B} = obj 就是给对象obj(实际上ES6的新类promise)中的data属性起了一个名字叫B。然后就可以用B.xx(对象.属性的方式调用了)。这其实是没搞清楚,解构对象的问题。

问题解决了,其实解决问题只是最后一步,而排查问题才是真正的困难。首先要确定问题,那就得对整个项目的每个文件夹/文件的作用十分熟悉,并且能根据报错来反推,这也需要对代码熟悉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值