[Compose Study] State 다루기
728x90
반응형
* 화면에 표시되는 내용이 변경된다면 State를 활용해야 한다.
* ViewModel에서 mutableState은 읽기와 쓰기가 가능한 타입이고 그냥 State<String>은 읽기만 가능한 타입이다.
* 먼저, State를 다루는 방법엔 여러가지가 있는데 1, 3번째 방식은 앞에서 정리한 내용이기도 하다.
- 1번째 방법은 그냥 MutableState<String> 타입으로 다루는 것이다.
- 3번째 방법은 구조분해를 사용하여 text(getter 역할), setText(setter 역할)로 나누어 다룬다. 아래처럼 TextField에 (value = text, onValueChange = setText)로 텍스트 변경이 가능하다. 구조분해에서 text는 val로 선언되어 있기 때문에 String을 수정하려면 setText("변경") 이런 식으로 수정해줘야 한다.
- 2번째 방법은 = 대신 by를 쓰는 방식이다. by에는 기본적으로 getValue, setValue가 내부에 구현되어 있다. 따라서 text1처럼 text1.value로 접근하지 않고 그냥 바로 text2 = "변경" 이런 식으로 변경이 가능하다. (대신 var로 선언해야 함)
* 다음은 ViewModel안의 데이터를 다루는 방법이다.
* viewModel안에 value는 val로 되어있어서 위에서처럼 viewModel.value.value = "변경" 이런식으로 직접적으로 수정이 안되고, viewModel 안에서 따로 함수를 정의해 호출해야한다.
728x90
반응형
'Study > Android' 카테고리의 다른 글
[Compose Study] Compose 기본사항 - 1 (2) | 2024.09.04 |
---|---|
[Compose Study] LazyColumn (1) | 2024.06.05 |
[Compose Study] ViewModel (0) | 2024.06.03 |
[Compose Study] Navigation (0) | 2024.06.02 |
[Compose Study] Scaffold (0) | 2024.05.30 |
TAGS.