props傳值大家都很清楚,
###prps 可以傳一個數字
###prps 可以傳一個布爾值
###prps 可以傳一個數組
###prps 可以傳一個對象
###prps 可以傳一個對象的所有屬性
今天就遇到了 在傳對象時,所需要的問題.
問題:
1.從父組件傳來了
props['info'] // info 就是一個數組,每一項就是一個對象
其中我需要用到info[0].id //這個值
於是 我在mounted:{
this.id= this,info[0].id //////////////報錯,報unfinded
}
而且打印 info 也是 打印不出來
原因則是 異步更新值的問題
就是說開始的時候有個默認值,這個默認值會被異步數據改變,比如說這個異步數據返回的object,如果你用props的方式去傳遞這個數據,其實第一次傳遞的空值,第二次傳遞的是更新后的值,所以就出現報未找到的錯誤.
解決方法:
既然說第一次是空值,它會這樣處理''.items[0],那么我們是不是可以在html判斷這個是不是空(或者在computed或者是watch來判斷是否為默認值)
我的解決方法就是在watch,監聽這個值
let id = this,info && this.info[0] && this.info[0].id
只有等 這個id有值時 才會進行賦值 !!!!!!!!!!
查了好久,但是還好找到了原因