1. 程式人生 > >vue2.0:Can not read property ‘XXX’ of undefined

vue2.0:Can not read property ‘XXX’ of undefined

問題描述:在vue2環境下:頁面爆出標題的錯誤,但是頁面的資料和方法正常渲染和使用,沒有任何異常。

解決辦法:

①定義非同步請求資料的完整格式

②頁面使用該資料時,使用v-if進行判斷一下

問題分析:

當你的頁面中渲染的時候,created的資料肯定是還沒獲取到的,如果你的json是隻巢狀一層,因為data你已經定義好了,所以data.a不會出現data undefined的錯誤,只是找不到data.a的資料,當你非同步請求完之後,會自動更新。但是如果你的json是巢狀兩層,比如data.a.b,那麼當你呼叫data.a.b的時候,因為data.a還沒有定義,所以就會報錯說Cannot read property ‘b’ of undefined。

如果你要避免這個,就在div外再巢狀一層

這樣當data.a.b還沒有獲取獲取到的時候就不會渲染,不能直接使用data.a.b”,因為這時候data.a還不存在。當created的資料獲取到後會自動更新。你要記住的就是,created中非同步獲取的資料基本都是在頁面渲染之後的,所以初始化資料的時候要加v-if。