在寫代碼中經常會遇到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