• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Vue 게시판 콤포넌트 props를 못 받아오는데 뭐가 문젤까요

콤포넌트 props를 못 받아오는데 뭐가 문젤까요

  • 이 주제에는 4개 답변, 2명 참여가 있으며 차지은2 년 전에 전에 마지막으로 업데이트했습니다.
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #88230

    차지은
    참가자
    App.vue
    
    
    <template>
      <div>
        <div class="menu">
          {{ menu }}
        </div>
        <ModalDetail
          :onerooms="onerooms"
          :clickModal="clickModal"
          :modalOpen="modalOpen"
        />
        <DiscountHtml />
        <div v-for="(oneroom, i) in oneroooms" :key="i">
          
          <h4
            @click="
              modalOpen = true;
              clickModal = i;
            "
          >
            {{ oneroooms[i].title }}
          </h4>
          <p>{{ oneroooms[i].price }} 원</p>
          <p>{{ oneroooms[i].content }}</p>
        </div>
      </div>
    </template>
    <script>
    import data from "./assets/oneroom.js";
    import DiscountHtml from "./DiscountHtml.vue";
    import ModalDetail from "./ModalDetail.vue";
    export default {
      name: "App",
        data() {
        return {
          report: [0, 0, 0],
          menus: ["Home", "Shop", "About"],
          products: ["역삼동원룸", "천호동원룸", "마포구원룸"],
          prices: [50, 70, 80],
          modalOpen: false,
          clickModal:0,
          oneroooms: data,
        };
      },
      methods: {
        increase1() {
          this.report[0]++;
        },
        increase2() {
          this.report[1]++;
        },
        increase3() {
          this.report[2]++;
        },
      },
      components: {
        DiscountHtml: DiscountHtml,
        ModalDetail: ModalDetail,
      },
    };
    </script>
    <style>
    #app {
      font-family: Avenir, Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
    }
    .discount {
      background: #eee;
      padding: 10px;
      margin: 10px;
      border-radius: 5px;
    }
    .menu {
      background: darkslateblue;
      padding: 15px;
      border-radius: 5px;
    }
    .menu a {
      color: white;
      padding: 10px;
    }
    .room-img {
      width: 50%;
      margin-top: 40px;
    }
    /* modal */
    body {
      margin: 0;
    }
    div {
      box-sizing: border-box;
    }
    .black-bg {
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.5);
      position: fixed;
      padding: 20px;
    }
    .white-bg {
      width: 100%;
      background: white;
      border-radius: 8px;
      padding: 20px;
    }
    </style>
    
    ======
    
    ModalDetail.vue
    
    
    <template>
      <div>
        <div class="black-bg" v-if="modalOpen == true">
          <div class="white-bg">
            
            <h4>{{ oneroooms[clickModal].title }}</h4>
            <p>{{ oneroooms[clickModal].price }}</p>
            <p>{{ oneroooms[clickModal].content }}</p>
            <!-- <button @click="modalOpen = false">닫기</button> -->
          </div>
        </div>
      </div>
    </template>
    <script>
    export default {
      name: "ModalDetail",
      props: {
        onerooms: Array,
        clickModal: Number,
        modalOpen: Boolean,
      },
    };
    </script>
    <style></style>
     
     
    ====
    
     ERROR MESSAGE
    
    
     111
    
    #88236

    codingapple
    키 마스터
    반복문같은거 쓸 때 array에 4번째 내용이 없는데 4번째내용을 출력하려고해서 그런게 아닐까요
    #88245

    차지은
    참가자
    그럼 지금 oneroom.js를 못가져오는건가요?? onerooms를 app.vue에서 props로 받아왔고 onerooms는 data로 oneroom.js를 가져오니까 부모자식관계로 데이터가 보내지지 않나요...???
    #88257

    codingapple
    키 마스터
    oneroooms 는 오타인듯요
    #88258

    차지은
    참가자
    헐쓰~!!!! 이거땜에 계속 진도가 못나갔었네요 아 감사합니다~!!!!! 아~!!!!!!!!!!!!!!!
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠