방명록
- [팀] 겸상 - v-if를 이용해 비동기 방식으로 처리되는 데이터를 자식 컴포넌트로 보내기2022년 07월 07일 00시 59분 27초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
카카오 로그인 API 연동이 완료되었고 카카오 아이디로 로그인하면 [그림 1]과 같은 프로필 정보를 볼 수 있다. 지금 보고 있는 [그림 1]은 식사 매너 별점이 실제 서버에 저장된 점수와 동일하게 잘 표현된 경우이다. 당연히 이렇게 렌더링 되어야 맞는데 처음부터 그렇지는 않았다. 대수롭지 않은 이 화면은 수많은 삽질의 산물이다.
[그림 1]은 서버로부터 로그인한 사용자 정보를 비동기 방식으로 가져와서 렌더링 한다. 별점 표시 기능은 재사용 컴포넌트로 만들어 import 하였다. 문제는 자식 컴포넌트인 별점 표시 기능에 props로 데이터를 보내는 시점이 비동기 처리가 완료되는 시점보다 빨라 자식 컴포넌트에서 받는 데이터의 값은 내 점수인 3이 아니라 undefined라는 것이다.
이러한 문제는 의외로 쉽게 해결이 가능했다. 해당 데이터의 값이 undefined가 아닐 때에만 자식 컴포넌트로 보내면 되기 때문이다. 따라서 자식 컴포넌트로 보내는 태그에 다음과 같이 v-if를 추가하면 된다.
<stars-rating v-if="user.dining_score !== undefined" :config="config" />
이 문제를 해결함에 있어 참고한 내용은 다음과 같다.
728x90반응형'프로젝트 > [팀] 겸상 - 혼밥 매칭' 카테고리의 다른 글
[팀] 겸상 - 메시지 삭제 기능을 구현하기 위해 vuex 활용(자식-부모 컴포넌트 간 정보 전달 문제) (0) 2022.07.12 [팀] 겸상 - ref를 이용해 disabled된 textarea에 focus 주기 (0) 2022.07.09 [팀] 겸상 - v-deep을 이용해 Datepicker의 스타일 변경 (0) 2022.07.04 [팀] 겸상 - Postman에서는 GET요청에서 body를 보낼 수 있는데, Axios에서는 불가 (0) 2022.07.03 [팀] 겸상 - Vue.js에서 textarea에 동적 메시지 값 데이터바인딩 처리 (0) 2022.06.30 다음글이 없습니다.이전글이 없습니다.댓글