vue踩坑記錄:屬性報undefined錯誤問題
vue屬性報undefined錯誤
在一個組件里,通過props傳值進(jìn)去對象,在控制臺打印報錯誤信息,提示某屬性不存在。
例如:
<div>{{data.param.aaa}}</div>類似這種的,取對象子級下面的值,就報了undefined。
原因應(yīng)該是在初始傳值,最多默認(rèn) data={}。
我嘗試在props里設(shè)置好默認(rèn)值,但是依然報錯
這么設(shè)置的props:
props:{
? ? data:Object,
? ? default:function(){
? ? ? ?return {
? ? ? ? ? ? ?param:''
? ? ? ? }
? ? }
}這么設(shè)置,依然報錯。 這個報錯,應(yīng)該是在父組件初始化了 data={}導(dǎo)致的。
最終解決方法
<div v-if="data.param">{{data.param.aaa}}</div>加一個if判斷,就可以了。
vue之各種報錯問題
1 、undefined is not iterable!或者null is not iterable!"

null和undefine是不可以拿來循環(huán)的,拿來循環(huán)就會報上面這個錯誤,循環(huán)的時候判斷一下,不為null或者undefine的時候再拿來循環(huán)就可以了~~
2、Duplicate keys detected: ‘funs1’. This may cause an update error.

原因: key值不唯一
解決: 仔細(xì)檢查是否用了同一個數(shù)據(jù)循環(huán)且:key值相同,如果相同給第二個key隨便加一個標(biāo)記就可以,如下:
:key=“index + ‘-only’”
3、報錯內(nèi)容:Maximum call stack size exceeded

這個一般都是路由的堆棧溢出的原因
說白了就是你寫了死循環(huán)。
比如我的這個代碼哈:
/**
*ifManager 是否是管理員
*str 是否有用戶信息
*在路由跳轉(zhuǎn)之前判斷是否是管理員或者是否有用戶信息,如果沒有就跳轉(zhuǎn)到login頁面
*/
router.beforeEach((to, from, next) => {
if (ifManager || str) {
next()
} else {
next(false);
router.push('/login')
}
})
/**
*乍一看好像沒有什么問題,但是一運行就會出現(xiàn)上面的那個錯誤,為什么呢。因為當(dāng)我們跳到login頁面的時候,依舊會判斷是否是管理員或者是否有用戶信息,就陷入了一個死循環(huán)。
*
*/
解決辦法就是:判斷條件改一下就可以了
fManager || str|| to.path == '/login'
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue安裝和使用scss及sass與scss的區(qū)別詳解
這篇文章主要介紹了vue安裝和使用教程,用了很久css預(yù)編譯器,但是一直不太清楚到底用的sass還是scss,直到有天被問住了有點尷尬,感興趣的朋友一起看看吧2018-10-10
vue在index.html中引入靜態(tài)文件不生效問題及解決方法
這篇文章主要介紹了vue在index.html中引入靜態(tài)文件不生效問題及解決方法,本文給大家分享兩種原因分析,通過實例代碼講解的非常詳細(xì) ,需要的朋友可以參考下2019-04-04
Vue3-新特性defineOptions和defineModel示例詳解
在Vue3.3中新引入了defineOptions宏主要是用來定義Option API的選項,可以用defineOptions定義任意的選項,props、emits、expose、slots除外,本文給大家介紹Vue3-新特性defineOptions和defineModel,感興趣的朋友一起看看吧2023-11-11

