CompositionLocal을 통해 전역 상태를 선언, 이를 CompositionLocalProvider를 사용해 하위 Composable에 전달할 수 있다
특정 값을 하위 Composable에주입하는 데 유용함
val LocalExampleValue = compositionLocalOf { "기본 값" }
@Composable
fun ParentComposable() {
CompositionLocalProvider(LocalExampleValue provides "제공된 값") {
ChildComposable()
}
}
@Composable
fun ChildComposable() {
val value = LocalExampleValue.current
Text(text = value) // "제공된 값"이 표시됨..!
}
제공된 값이 표시되는 이유는 current에서 가장 가까운 곳에서 설정한 값을 가져오기 때문에 !
전역으로 설정하기엔 좋을 거 같은데 추적이 힘들 거 같다
찾아보니, CompositionLocalProvider는 전역 상태 공유, 의존성 주입, UI 컨텍스트 제공 등의 상황에서 주로 사용된다고 한다
'🤖 Compose' 카테고리의 다른 글
[Compose] viewModel , LiveData (0) | 2025.01.21 |
---|---|
[Compose] Compose 주의점 (0) | 2025.01.17 |
[Compose] SideEffect (0) | 2025.01.16 |
[Compose] Animation (0) | 2025.01.08 |
[Compose] State, StateHoisting (0) | 2025.01.07 |