인프런 커뮤니티 질문&답변
setState()를 호출하지 않으면 build가 실행 안되는 건가요?
작성
·
19
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. Myoungsu Park님,
setState() 함수는 StatefulWidget의 상태가 변경될 때 UI를 다시 그려주는 역할을 합니다. 그러나 이외에도 build() 함수가 실행될 수 있는 여러 상황이 있습니다. 예를 들어, 부모 위젯에서 상태 변경이 발생하거나, 화면 회전과 같은 외부 조건에 따라 build()가 호출될 수 있습니다.
실제로 Flutter에서는 다음과 같은 상황에서 build() 함수가 실행될 수 있습니다:
- 초기 위젯 트리가 구성될 때.
- 부모 위젯이 다시 빌드될 때 (
parent widget rebuild).
setState()함수가 호출될 때.
InheritedWidget에 의한 데이터 변화가 있을 때.
- 기기 방향 변화와 같은 외적 변화에 의해 화면이 갱신될 때.
각 상황에 따라 build()가 호출되므로, setState()가 없다 하더라도 위젯 트리가 다시 빌드될 수 있습니다.
관련된 정보를 자세히 이해하고 싶으시다면 다음의 링크를 참고하시면 도움이 될 것입니다:
- setState 질문에 대한 설명
- StatefulWidget과 build 함수의 관계에 대한 설명
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





