鍍金池/ 問答/HTML/ vue中第一次加載頁面data對象中沒有值,刷新之后就好了

vue中第一次加載頁面data對象中沒有值,刷新之后就好了

用的是vue做的后臺管理系統(tǒng),第一次進入的時候頁面數(shù)據(jù)沒有加載,報錯Cannot read property 'realname' of undefined
刷新之后值就會出來
刷新之前頁面是這樣的圖片描述

刷新之后的頁面是這樣的圖片描述

頁面的代碼是這樣的圖片描述這個this.user就是這個用的值

回答
編輯回答
膽怯

clipboard.png
這個是獲取到登陸用戶的信息并且賦值

clipboard.png
在公共的js中寫的一個方法把這個值返回出來

clipboard.png
在中間展示的地方獲取這個返回的值進行賦值,只有第一次進入這個頁面會不出現(xiàn)數(shù)據(jù),刷新就好了

2018年2月23日 19:23
編輯回答
不討喜

異步獲取的數(shù)據(jù)吧? 對"基本資料"對應(yīng)的div加一個v-if="!!user",

你這個getSysUser方法看起來有些怪, 是異步的嗎? 如果是Promise, 那么少寫了awaitasync

async mounted(){
    this.user = await this.getSysUser();
}
2017年1月26日 16:36
編輯回答
毀憶

寫到created中試試。

2017年7月31日 22:34
編輯回答
心上人

在div上面加個 v-if="user"

2018年1月15日 15:58
編輯回答
歆久

這個應(yīng)該是你給的user這個變量的初始值不對;
看你的api是mounted之后才去獲取后臺數(shù)據(jù),而后臺返回的數(shù)據(jù)對象中有個屬性是realname,而你在mounted的時候,數(shù)據(jù)正在獲取的時候,模板已經(jīng)被初始化渲染了,所以模板就需要你user里面的realname這個屬性值,你的初始化值中有的話就應(yīng)該不會報錯了

2018年5月29日 02:17