搜尋

首頁  >  問答  >  主體

為什麼在Vue中,當陣列初始化並顯示輸出時,會出現「無法讀取未定義的屬性」的錯誤?

<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粉642919823P粉642919823461 天前556

全部回覆(1)我來回復

  • P粉087074897

    P粉0870748972023-08-29 13:17:32

    在你的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屬性的事實。

    回覆
    0
  • 取消回覆