본문 바로가기
Android/Compose

[Compose] Composable 함수 안에서 getString 사용 시 주의할 점

by 굿햄 2026. 7. 22.

Resource 와 Context 사용 구분 필요

Composable 안에서 다음과 같이 문자열을 가져올 수 있습니다.

val message = stringResource(R.string.login_success)

// LaunchedEffect 같은 side-effect 내부에서는 stringResource()를 직접 호출 불가
val context = LocalContext.current
LaunchedEffect(Unit) {
	val message = context.getString(R.string.login_success)
}

 

그러나 Context의 경우에는 Configuration (지역, 다크모드 등)이 변경되더라도 Resource가 변경되지 않는 문제가 발생하여, 이전에 표시되던 값이 유지될 수 있습니다.

 

따라서 다음과 같이 적용이 필요합니다.

val resources = LocalResources.current

LaunchedEffect(resources) {
    val message = resources.getString(R.string.login_success)
}

 

댓글