<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();
}
}
</腳本>
<模板>
在你的
v-for
中,你使用了users.address.street
。當你將
[1, 2]
傳遞給usersList
並且Vue透過v-for
解析這些項目時,它嘗試讀取每個數字的address.street
。因為它們是數字,它們的
address
是undefined
。當你嘗試存取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
屬性的事實。