ホームページ  >  に質問  >  本文

Vue で、配列が初期化されて出力が表示されると、「未定義のプロパティを読み取れません」というエラーが発生するのはなぜですか?

<p>App.vue と 1 つのコンポーネントUsersPage.vue という 2 つの vue ファイルがあります。</p> <p>UsersPage.vue:</p> <pre class="brush:php;toolbar:false;"><script> デフォルトのエクスポート { データ:() =>({ ユーザーリスト: [] })、 メソッド:{ async createUsersList(){ this.usersList = await fetch("https://jsonplaceholder.typicode.com/users").then((response)=> response.json()); } }、 作成した(){ this.createUsersList(); } } </スクリプト> <テンプレート>
P粉642919823P粉642919823441日前548

全員に返信(1)返信します

  • P粉087074897

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

    v-for では、users.address.street を使用しました。

    [1, 2]usersList に渡し、Vue が v-for 経由で項目を解析すると、## の各番号を読み取ろうとします。 #アドレスストリート###。 これらは数値であるため、その

    アドレス

    未定義です。 unknown のプロパティにアクセスしようとすると、発生したエラーが発生します。

    NOTE

    : v-for がエラーをスローせずに address のない項目を解析できるようにしたい場合は、 users を使用できます。 address.streetusers.address?.street に置き換えられます。 ドキュメント: null 合体演算子

    また、イテレータに
    users

    という名前を付けると、このコードを変更する必要がある自分や他の開発者が users とは何かについて混乱する可能性があるため、名前を付けないでください。 user という名前を付ける必要があります (例: v-for="usersList のユーザー" :key="user.id")。 ただし、数値の場合は address.street
    プロパティにアクセスできないという事実は変わりません。

    返事
    0
  • キャンセル返事