๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์›น๊ณต๋ทฐ

[vue.js] v-for ์ถœ๋ ฅ ์•ˆ ๋˜๋Š” ์˜ค๋ฅ˜

by ์ด๋…ธํ‚ค_ 2022. 11. 5.

์•„.. ์ •๋ง ์‚ฝ์งˆ์„ ์–ผ๋งˆ๋‚˜ ํ–ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ ์‹คํ–‰์‹œ ๊ณ„์†ํ•ด์„œ Members์˜ ๊ฐ’์„ ์ฝ์–ด์˜ค์ง€ ๋ชปํ–ˆ๊ณ , ๋„๋Œ€์ฒด ์ด๊ฑด ์™œ ์•ˆ๋ ๊นŒ ์•ฝ ํ•œ์‹œ๊ฐ„ ๋„˜๊ฒŒ ์‚ฝ์งˆํ•œ๊ฒƒ ๊ฐ™๋‹ค. 

 <ul>
    <li :v-for="(member, idx) in Members" :key="idx">
      {{ member.role }}
    </li>
  </ul>

์ฝ˜์†”์—์„œ๋Š” warn ๋ฉ”์‹œ์ง€์™€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊นŒ์ง€ ๋ฟœ์–ด๋‚ด๋ฉฐ ๋ญ”๊ฐ€๊ฐ€ ์ž˜๋ชป๋˜๊ณ  ์žˆ๋‹ค๊ณ  ์•Œ๋ ค์ฃผ์—ˆ๋‹ค.

๋ถ„๋ช…ํžˆ {{Members}}๋ฅผ ํ•ด๋ณด๋ฉด ์•ˆ์— ๊ฐ’๋“ค์„ ์ž˜ ์ฝ์–ด์˜ค๋Š”๋ฐ ๋ง์ด๋‹ค.

Property "idx" was accessed during render but is not defined on instance.  

๊ฒฐ๊ตญ ๋ฌธ์ œ๋Š” ์ฝœ๋ก  : colon ๋ฌธ์ œ์˜€๋‹ค. 

":"๋Š” v-bind๊ฐ€ ์•ž์— ์ƒ๋žต๋˜์–ด์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. 

๊ฐ€๋ น v-bind:class="", v-bind:src ๋“ฑ.... v-for์— ์ฝœ๋ก ์„ ๋ถ™์ด๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ• ๋ฆฌ ์—†์—ˆ๋‹ค. 

 

v-bind: ๋‚จ์šฉํ•˜์ง€ ๋ง์ž.

(: colon์„ ์™œ ์“ฐ๋Š”์ง€ ๋ชจ๋ฅด๊ณ  ๋”ฐ๋ผํ–ˆ๋‹ค ์‹œ๊ฐ„๋งŒ ๋‚ ๋ ธ์ง€๋งŒ, ์ด์ œ์„œ์•ผ ์–ธ์ œ ์จ์•ผํ•˜๋Š”์ง€ ์ œ๋Œ€๋กœ ์•Œ๊ฒŒ๋˜์—ˆ๋„ค)

์•„๋ž˜๋Š” ์ „์ฒด ์ฝ”๋“œ. warn, error ๋ฉ”์‹œ์ง€ ๋ชจ๋‘ ์‚ฌ๋ผ์กŒ๋‹ค!!

<template>
  <h1>Team Member</h1>
  <!-- <img :src="Members[0].profile" alt="ํ”„๋กœํ•„ ์‚ฌ์ง„" /> -->
  <ul>
    <li v-for="(member, idx) in Members" :key="idx">
      {{ member.role }}
    </li>
  </ul>
</template>

<script>
import Members from "../../assets/js/members.js";
export default {
  name: "TeamMember",
  data() {
    return {
      Members: Members,
    };
  },
};
</script>

<style>

</style>

 

๋Œ“๊ธ€