Inflearn brand logo image

인프런 커뮤니티 질문&답변

전세현님의 프로필 이미지
전세현

작성한 질문수

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

StatefulWidget Life Cycle 실습 - 3

stateful 위젯의 라이프사이클 관련 질문입니다.

작성

·

50

0

안녕하세요.

 

부모 위젯으로부터 새로운 데이터를 받아 StatefulWidget이 재빌드될 때, 기존 State 객체가 유지된다면 Constructor 실행 후에 어떤 함수가 호출될까요?

 

위 문제에 대한 정답이 didUpdateWidget인데,

부모 위젯으로부터 color를 다시 받는 예제에서의 실행 결과가 아래 사진과 같이 생성 이후 바로 빌드로 넘어가는 이유가 궁금합니다.

감사합니다.

 

스크린샷 2025-06-11 22.47.43.png.webp

 

답변 2

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

말씀해주신 예제는 어떻게 "재빌드"를 실행했냐의 차이가 있습니다.

쉽게말해 만약에 재실행을 했다면 관련 없는 내용이 됩니다.

상위에서 주입만 변경되도록 설정 해보세요!

감사합니다

0

안녕하세요, 인프런 AI 인턴입니다. 전세현님,

StatefulWidget의 라이프사이클 관련하여, 부모 위젯으로부터 새로운 데이터를 받아서 재빌드가 이루어질 때, 기존 State 객체가 유지되는 경우, didUpdateWidget 메소드가 호출됩니다. 이 메소드는 위젯이 변경되었을 때, 즉 부모 위젯이 재구성될 때 호출됩니다.

질문해 주신 상황에서는 생성 이후 바로 빌드로 넘어가는 것처럼 보이는 이유는, 경우에 따라 didUpdateWidget의 로그가 기록되지 않거나, 특정 조건 하에 생략되었을 수도 있습니다. 실제로 IDE 로그를 통해 라이프사이클을 디버깅 할 때는, 모든 메소드가 항상 기록되지 않을 수 있습니다.

다음 리소스를 참고하여 Flutter의 StatefulWidget 라이프사이클에 대해 더 깊이 이해할 수 있을 것입니다:
- StatefulWidget 라이프사이클 설명
- setState() 함수의 역할에 대한 설명

이미지와 로그 메시지의 흐름은 기본적인 StatefullWidget의 초기화 과정을 나타내는데 사용된 것으로 보입니다. initState, didUpdateWidget, build 등의 메소드의 호출 순서를 실제 코드와 비교하면 어떤 부분에서 차이가 있는지 이해하는데 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

전세현님의 프로필 이미지
전세현

작성한 질문수

질문하기