>  Q&A  >  본문

Vue에서 배열이 초기화되고 출력이 표시될 때 "정의되지 않은 속성을 읽을 수 없습니다"라는 오류가 발생하는 이유는 무엇입니까?

<p>저에게는 vue文件, App.vue 및 一个组件UsersPage.vue가 있습니다.</p> <p>UsersPage.vue:</p> <pre class="brush:php;toolbar:false;"><script> 기본값 내보내기 { 데이터:() =>({ 사용자 목록: [] }), 행동 양식:{ 비동기 createUsersList(){ this.usersList = fetch("https://jsonplaceholder.typicode.com/users").then((response)=> response.json()); } }, 만들어진(){ this.createUsersList(); } } </스크립트> <템플릿>
P粉642919823P粉642919823441일 전544

모든 응답(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.
    문서: 무효 병합 연산자.


    또한 반복자 이름을 지정하면 안 됩니다 users,因为这可能会让你或其他需要修改该代码的开发人员对users是什么感到困惑。你应该将其命名为user(例如:v-for="user in usersList" :key="user.id").
    하지만 숫자인 경우 address.street 속성에 액세스할 수 없다는 사실은 바뀌지 않습니다.

    회신하다
    0
  • 취소회신하다