[코드 리팩토링] '미주정복' 10일차 - 데이터 삭제 에러 수정

이윤진·2024년 1월 27일
0

코드 리팩토링

목록 보기
11/12

어제 데이터베이스에서는 값이 삭제되었는데 화면에서는 여전히 남아있는 문제를 해결하지 못 하였다.
이번에는 이를 해결해보려고 한다.
Lifecycle이 destroy되기 전에는 이전에 받아놨던 데이터베이스 데이터를 그대로 가져오는 것이 문제되었기 때문에, 그렇다면 데이터베이스의 데이터를 딱 한 번만 받아오도록 수정하였다.

viewModel에서의 수정

var justOneTime = mutableStateOf(true)

mutableState의 Boolean 값을 하나 생성하였다.

view에서의 수정

    viewModel.stockNameList.observe(LocalLifecycleOwner.current) {
        if (viewModel.justOneTime.value){
            companyList.addAll(it)
            Log.d("company", "$it")
            viewModel.justOneTime.value = false
        }
    }

viewModel의 값이 true일 때만 값을 업데이트 하도록 하였다.

이렇게 하니 문제가 되었던 navigationBar를 이동하였을 때, 데이터 값이 다시 생성되는 부분을 해결할 수 있었다.

viewModel이 destroy되면 다시 새로운 데이터베이스 데이터를 제대로 받아오기 때문에 문제가 되지 않았다.

profile
Android/Flutter 개발

0개의 댓글