在使用 vue.js 和 element-ui 進行開發時,有時候會遇到這樣的報錯:TypeError: Cannot read property 'xxx' of undefined,其中 xxx 表示 undefined 屬性的名稱。
這個錯誤的原因很簡單,就是我們在訪問一個對象的屬性時,這個對象并沒有被實例化或賦值,因此它的值是 undefined,再訪問這個 undefined 值的屬性自然就會出現 TypeError 的錯誤。
例如,下面的代碼嘗試訪問一個未被定義的對象的屬性 $refs:
export default {
mounted() {
this.$refs.xxx.focus()
}
}
當該組件的渲染完成后,mounted 生命周期會被調用,但是此時 xxx 對象還沒有被實例化或賦值,因此會產生 undefined 錯誤。我們需要先判斷一下這個對象是否存在,再進行調用它的屬性或方法,例如:
export default {
mounted() {
if (this.$refs.xxx) {
this.$refs.xxx.focus()
}
}
}
在寫 vue.js 代碼時,我們要時刻注意判斷對象是否存在,防止出現 undefined 錯誤。
上一篇c 復雜json反序列化
下一篇vue ele com