為什麼在Vue中,當陣列初始化並顯示輸出時,會出現「無法讀取未定義的屬性」的錯誤?
P粉642919823
P粉642919823 2023-08-28 23:38:03
0
1
575
<p>我有兩個 vue 文件,App.vue 和一個元件UsersPage.vue。</p> <p>UsersPage.vue:</p> <pre class="brush:php;toolbar:false;"><腳本> 導出預設值{ 數據:() =>({ 使用者列表:[] }), 方法:{ 非同步建立使用者列表(){ this.usersList =等待fetch(“https://jsonplaceholder.typicode.com/users”).then((response)=>response.json()); } }, 創建(){ this.createUsersList(); } } </腳本> <模板>
P粉642919823
P粉642919823

全部回覆(1)
P粉087074897

在你的v-for中,你使用了users.address.street

當你將[1, 2]傳遞給usersList並且Vue透過v-for解析這些項目時,它嘗試讀取每個數字的address.street

因為它們是數字,它們的addressundefined。當你嘗試存取undefined的任何屬性時,你會得到你正在遇到的錯誤。

注意:如果你希望你的v-for能夠解析沒有address的項目而不拋出錯誤,你可以將users .address.street替換為users.address?.street
文件: nullish coalescing operator


另外,你不應該將你的迭代器命名為users,因為這可能會讓你或其他需要修改該程式碼的開發人員對users是什麼感到困惑。你應該將其命名為user(例如:v-for="user in usersList" :key="user.id")。
但這並沒有改變當它是一個數字時,你無法訪問它的address.street屬性的事實。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板