在Vue開(kāi)發(fā)中,經(jīng)常會(huì)出現(xiàn)一個(gè)問(wèn)題,就是在訪問(wèn)組件的數(shù)據(jù)時(shí),會(huì)出現(xiàn)“got undefined”的錯(cuò)誤提示。
這種錯(cuò)誤提示通常發(fā)生在使用組件屬性時(shí),沒(méi)有正確傳遞參數(shù)或者使用了未定義的屬性。這時(shí)候,我們需要仔細(xì)檢查代碼,找出問(wèn)題所在。
下面是一個(gè)示例代碼:
Vue.component('user-info', { props: ['name', 'age'], template: 'User Name: {{ name }}, Age: {{age}}' }) Vue.component('user-list', { data() { return { users: [ {name: 'Alice', age: 20}, {name: 'Bob', age: 30}, ] } }, template: `
這個(gè)例子中,我們定義了一個(gè)包含name和age屬性的user-info組件,然后在user-list組件中使用v-for循環(huán)展示了多個(gè)user-info子組件。但是,在運(yùn)行時(shí),會(huì)發(fā)現(xiàn)user-info只顯示了名字,年齡沒(méi)有顯示出來(lái),而且控制臺(tái)輸出了“got undefined”的錯(cuò)誤提示。
原因是在user-info組件中,我們定義了name和age兩個(gè)屬性,但是在user-list中,只傳遞了name屬性,age屬性沒(méi)有傳遞,導(dǎo)致在渲染user-info時(shí),age值為undefined。
為了解決這個(gè)問(wèn)題,我們需要在user-list中傳遞age屬性:
Vue.component('user-list', { data() { return { users: [ {name: 'Alice', age: 20}, {name: 'Bob', age: 30}, ] } }, template: `
這樣就能正確渲染user-info組件了,通過(guò)傳遞正確的屬性,避免了“got undefined”的錯(cuò)誤提示。