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

home2 게시판 Vue 게시판 vuex 질문

vuex 질문

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #15762

    최재문
    참가자

    사이드바에 추천으로 뜨는 앱을 랜덤으로 띄우고 싶어서 코드를 짜보았습니다

    코드 구조는
    1. vuex store.js 에 0부터 6까지의 정수 하나를 랜덤으로 뽑는 mutations 함수를 만들어서 randomIndex라는  state에 저장
    2. 사이드바가 열릴때마다 randomIndex를 뽑아달라고 커밋함
    3. Sidebar.vue 에 해당 randomIndex를 데이터바인딩해서 원하는 앱과 설명을 랜덤으로 띄움
    4. 이게 문제인데, 해당 추천 앱을 클릭시 추천 앱에 해당하는 인덱스 넘버를 Home.vue에 커스텀이벤트로 전송해서 띄움

    인데.. 앱 랜덤으로 띄우는건 잘 되는데, Home.vue에 전달할 randomIndex와 띄워진 앱의 randomIndex가 달라서 다른 앱이 열립니다.
    store.js

    Home.vue

    버튼 클릭시 RandomIndex 커밋하는부분

    Sidebar.vue 에서 커스텀이벤트로 randomIndex 보내서 windowState에 지정한 부분

    Sidebar.vue


    처음에는 randomIndex 자체를 보냈다가, recommendApps 배열의 id값을 보내는게 더 맞는거같아서 이렇게 했습니다.

    논리적으로 무조건 맞는거같은데 왜 $emit으로 보낸 randomIndex와 Sidebar.vue에서의 randomIndex가 다른 값인걸까요..

    #15764

    최재문
    참가자

    분명히 사이드바 여는 버튼 클릭 할 때에만 randomIndex가 정해질텐데

    $emit한 randomIndex랑 추천앱의 randomIndex랑 왜 다를까요
    개빡치네요 스트레스땜에 탈모 생길거같아요

    #15771

    최재문
    참가자

    해결했습니다 해결했습니다 해결했습니다 해결했습니다 해결했습니다 해결했습니다 

    #15776

    codingapple
    키 마스터

    그럴땐 해결된 이유를 살짝 적어주시면 됩니다

    #15778

    최재문
    참가자

    처음에는 커스텀이벤트로 보낸 데이터랑 버튼 열 때 랜덤인덱스랑 대조해보려고 콘솔창에 띄워봤는데 값이 다른겁니다
    그래서 Sidebar.vue 에 currentIndex 라는 데이터를 만들고 버틀 열 때 랜덤인덱스를 currentIndex에 박고 콘솔창 띄웠는데
    값이 똑같게 잘 나옵니다
    그런데도 추천 앱 누르니까 다른 앱이 나오더라고요?

    근데 잘 생각해보니까
    총 앱의 갯수는 8개인데, 추천앱 어레이에는 Project폴더 앱을 제외한 7개 앱을 넣었습니다.
    그래서 windowState = $event 를 windowState = $event + 1 로 바꾸니까 잘 작동합니다.
    혹시나 해서 다시 Sidebar.vue에 currentIndex 데이터 지우고, 그냥 vuex state로 받아와서 커스텀이벤트로 보내니까 잘 작동합니다.

    이런 간단한 실수로 한 3~4시간 날려먹은거 같은데 자괴감드네요
    해결하자마자 사자후 3번 질렀습니다

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 호 / 개인정보관리자 : 박종흠