반응형
구글 디벨롭에서 Compose 코스를 공부 하던 중에 livedata 에 observeAsState를 사용하는 예제가 있습니다.
제 앱에서 해당 함수를 호출 하려니 observe만 있고 observeAsState 라는 함수는 없었고 왜 없나 해서 찾아 보니 사용하는 라이브러리 패키지가 달랐습니다.
import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
@Composable
private fun TodoActivityScreen(todoViewModel: TodoViewModel) {
val items: List<TodoItem> by todoViewModel.todoItems.observeAsState(listOf())
TodoScreen(
items = items,
onAddItem = { todoViewModel.addItem(it) },
onRemoveItem = { todoViewModel.removeItem(it) }
)
}
해당 함수는 기존 androidx.lifecycle.Livedata 패키지에는 없는 함수로 아래의 runtime-livedata 라이브러리를 추가 해야 사용 할 수 있다.
implementation 'androidx.compose.runtime:runtime-livedata:1.0.5'
+ 추가로 MutableStateFlow 로 옵저브 할 떄는
val item: List<TodoItem> by viewModel.todoitem.asStateFlow().collectAsState(listOf())
'Kotlin programming > Compose' 카테고리의 다른 글
[Compose] 'by' 가 동작하지 않을 때 (0) | 2022.07.21 |
---|---|
[Compose] 하철이 - 가로 스크롤 아이템 (0) | 2022.01.19 |
[Compose] 클릭했을 때 리플 효과 비활성화(disable ripple effect when clicking in Jetpack Compose) (0) | 2022.01.12 |