TIL #114

loci·2024년 9월 27일
0

TIL

목록 보기
104/111

좋아요 버튼 클릭시 오류

네트워크 환경 때문인지 좋아요버튼을 누르면 상태가 스위칭 되지않고 일정숫자까지 계속 +1이되는 현상이 발생

fun isLikedToggle(feedUid: String) {  
    viewModelScope.launch {  
        when (isLiked.value) {  
            true -> {  
                if (uid != null) {  
                    _isLiked.value = false  
                    userInfoUseCases.removeLikedFeed.execute(uid, feedUid)  
                    feedRepository.setLikeMinus(feedUid)  
                } else {  
                    Timber.e("uid가 null입니다.")  
                }  
            }  
  
            false -> {  
                if (uid != null) {  
                    _isLiked.value = true  
                    userInfoUseCases.createLikedFeed.execute(uid, feedUid)  
                    feedRepository.setLikePlus(feedUid)  
                } else {  
                    Timber.e("uid가 null입니다.")  
                }  
            }  
        }  
  
    }  
}

_isLiked.value = !isLiked.value_isLiked.value = true로 각각 적용하게 해주고 처음엔 맨 밑줄에 했는데 요청이 다끝나고 상태가바껴서 바로바로 카운트와 이미지가 안바뀌는 문제가있어 맨윗줄로 옮겨줌

ivLikeIcon.setOnClickListener {  
    viewLifecycleOwner.lifecycleScope.launch {  
        detailViewModel.isLikedToggle(args.feedIdArg)  
        detailViewModel.modifyIsLiked(tvFeedDetailLikeCount.text.toString().toInt())  
    }  
}

실행순서를 보장하기위해서 viewLifecycleOwner.lifecycleScope.launch안에 넣어줌

profile
편리한 개발자

0개의 댓글