상태를 호이스팅할 대상 위치 | Jetpack Compose | Android Developers
[Android Compose State] State Hoisting(상태 호이스팅) 패턴이란 무엇인가?
Jetpack Compose basics – State Hoisting(상태 끌어올리기) | 찰스의 안드로이드
상태 끌어올리기는, UI를 Stateless
로 만들기 위해 State
를 계층 위로 옮기는 패턴을 말한다.
이 패턴을 컴포저블에 사용할때 다음과 같은 파라미터를 주로 사용한다.
TextFieldWithTitle 컴포즈 (Stateless
)
@Composable
fun KotlinWorldScreen() {
var text by rememberSaveable{ mutableStateOf("") }
TextFieldWithTitle(title = "title", text = text, onTextValueChange = { text = it })
}
**// 자신의 상태를 외부에 맡김 (state less)**
@Composable
fun TextFieldWithTitle(
title: String,
text: String,
onTextValueChange: (String) -> Unit
) {
Column(modifier = Modifier.padding(16.dp)) {
Text(
text = title,
modifier = Modifier.padding(bottom = 12.dp),
style = MatherialTheme.typography.h6
)
OutlinedTextField(
value = text,
onValueChange = onTextValueChange
)
}
}