🤖 Compose
[Compose] compositionLocal
콩드로이드
2025. 1. 21. 16:54
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 컨텍스트 제공 등의 상황에서 주로 사용된다고 한다