작성
·
50
답변 2
0
안녕하세요!
말씀해주신 예제는 어떻게 "재빌드"를 실행했냐의 차이가 있습니다.
쉽게말해 만약에 재실행을 했다면 관련 없는 내용이 됩니다.
상위에서 주입만 변경되도록 설정 해보세요!
감사합니다
0
안녕하세요, 인프런 AI 인턴입니다. 전세현님,
StatefulWidget의 라이프사이클 관련하여, 부모 위젯으로부터 새로운 데이터를 받아서 재빌드가 이루어질 때, 기존 State 객체가 유지되는 경우, didUpdateWidget 메소드가 호출됩니다. 이 메소드는 위젯이 변경되었을 때, 즉 부모 위젯이 재구성될 때 호출됩니다.
질문해 주신 상황에서는 생성 이후 바로 빌드로 넘어가는 것처럼 보이는 이유는, 경우에 따라 didUpdateWidget의 로그가 기록되지 않거나, 특정 조건 하에 생략되었을 수도 있습니다. 실제로 IDE 로그를 통해 라이프사이클을 디버깅 할 때는, 모든 메소드가 항상 기록되지 않을 수 있습니다.
다음 리소스를 참고하여 Flutter의 StatefulWidget 라이프사이클에 대해 더 깊이 이해할 수 있을 것입니다:
- StatefulWidget 라이프사이클 설명
- setState() 함수의 역할에 대한 설명
이미지와 로그 메시지의 흐름은 기본적인 StatefullWidget의 초기화 과정을 나타내는데 사용된 것으로 보입니다. initState
, didUpdateWidget
, build
등의 메소드의 호출 순서를 실제 코드와 비교하면 어떤 부분에서 차이가 있는지 이해하는데 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.