state hoisting 이란?
기본적으로 State는 개별 Component에서 유지된다. 그러나 다른 Componet(예를 들면 자식 Component)에서도 같은 State 값이 필요하다면, 해당 State를 상위(부모) Component에서 공유할 수 있고, 상태의 일관성을 유지할 수 있다.
쉽게 말해서, 상위 Component에서 하위 Component에게 값을 전달하고 하위 Component에서 값을 변경하면 상위 Component에서도 값 변경이 일어나고, 화면 렌더링도 일어난다. 따라서, 변경된 값이 자동으로 적용된다.
해결 방법 1: MutableState<타입>으로 상태를 전달
: 상태 객체를 직접 전달해서, 자식 Componet가 부모 Componet의 state를 직접 접근하고 관리할 수 있게 하는 것이다.
쉽게 말해서 객체 자체를 참조헤서 자식 컴포넌트에서 값에 접근할 수 있는 것이다.
해결 방법 2: 람다식을 형식 인자로 전달
: 상태를 변경하는 람다 함수와 값을 전달해서, 자식 Componet가 부모 Componet 의 state 자체에 의존하지 않고 값을 관리할 수 있도록 하는 것이다.
쉽게 말해서, 객체를 직접 사용하지 않고 값을 제어하기 위한 람다식과 값을 선언해서 넘겨주는 것이다.
1. 커스텀 텍스트와 기본 슬라이더 이용해서 앱 만들기
2. 커스텀 텍스트와 커스텀 슬라이드 - MutableState<타입>
3. 커스텀 텍스트와 커스텀 슬라이드 - 람다식
'2학년 2학기 > 모바일 소프트웨어 - 안드로이드 스튜디오' 카테고리의 다른 글
값 전달과 상태 호이스팅의 차이 (1) | 2024.11.06 |
---|---|
Arrangement와 Alignment (1) | 2024.11.06 |
state란? - counter button 만들기 (0) | 2024.11.05 |
Scaffold vs Surface의 차이 (1) | 2024.10.30 |
Compose 기초 (0) | 2024.10.30 |