在写代码中经常会遇到TypeError: Cannot set properties of undefined (setting 'xx'),这个问题。
**一般出现的场景:**在调用接口访问后端数据时,前端渲染显示空白,并报此错。例如,我在调用高德地图,输入经纬度信息,希望得到地址名称,我将返回给我的地址赋值给data中的realAddress,代码写为this.realAddress = address,此时就会报错。
**原因分析:**this指向的对象发生了变化(现在this代表axios对象),需要在函数前将this指向的对象提前保存一下
解决方案:
方案一:回调函数使用箭头函数来使用。(responde)=>{}。普通函数的this默认指向window,箭头函数this与上一级作用域中的this指向同一个地方,继承了他的父级。
方案二:暂存this。const that = this