// Screen
val accountInfo by viewModel.accountInfo.collectAsState() // viewModel 에서 suspend fun 으로 fetch 함
...
val selectedGender = remember { mutableStateOf(accountInfo?.gender ?: "") }
GenderSegmentRow(selectedGender = selectedGender)
accountInfo 가 async 로 fetch 되는 거여서, selectedGender 가 set될때는 empty string 으로 될 수 있어, 선택된 성별이 안보임.
val accountInfo by viewModel.accountInfo.collectAsState() // viewModel 에서 suspend fun 으로 fetch 함
val selectedGender = remember { mutableStateOf(accountInfo?.gender ?: "") }
LaunchedEffect(accountInfo) {
accountInfo?.gender?.let {
selectedGender.value = it
}
}
LaunchedEffect 를 이용해 accountInfo 가 업데이트 될 때마다 selectedGender 를 업데이트 하도록함.
viewModel.setSelectedGender(accountInfo?.gender ?: "")
val selectedGender by viewModel.selectedGender.collectAsState()
recomposition 이 잦으면 selectedGender 를 viewModel로 옮길 수 있다
공유 감사합니다!