inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

setState 질문

315

유병길

작성한 질문수 3

0

안녕하세요.

강의 잘 듣고있습니다..

강의 도중 ElevatedButton 에서 setState 를 할 시 TestWidget 의 build 가 실행되는데, setState 는 StatefulWidget 의 state 변경시 사용된다고 들었습니다.

근데, TestWidget 과 어떠한 연관도 없는데 TestWidget 의 build가 실행되는 이유가 뭔가요?

수업 중 들었던거 같기도한데... 그 부분 찾기가 어려워 질문남깁니다

Flutter 클론코딩

답변 1

1

코드팩토리

안녕하세요

setState() 함수는 State 클래스를 상속받을경우 제공되는 함수입니다!

setState()의 역할은 해당 함수가 제공된 클래스의 build 함수를 재실행하는게 목적입니다.

StatelessWidget과 StatefulWidget의 라이프 사이클을 비교해드린 제 강의를 기억해보시면 StatefulWidget은 StatefulWidget과 State 클래스 둘로 구성되어있다고 말씀 드렸습니다.

저희가 StatefulWidget을 사용할땐 StatefulWidget을 상속한 클래스를 사용하지만 사실 이 클래스는 createState() 함수를 통해 State 클래스를 반환하는 역할을 합니다. 그리고 build() 함수는 State 클래스에 존재하죠. StatefulWidget에는 build() 함수가 없습니다. 라이프 사이클에서 말씀드린것처럼 불변의 법칙때문에 그렇게 설계되어있습니다. 그러니 setState() 함수는 State 클래스의 build() 함수를 재실행하는거지 StatefulWidget의 build() 함수를 재실행하는게 아닙니다 (없습니다).

이건 매우 중요한 내용이니 방금 말씀드린 내용이 이해가 어렵다면 꼭 라이프사이클 강의를 다시 복습해보시길 바랍니다!

또 질문 있으시면 언제든 문의주세요!

감사합니다.

0

유병길

결국 HomeScreenState 의 build 를 재실행하면서 TestWidget(StatelessWidget) 도 다시 인스턴트를 만들면서 build 가 불러와진거군요..

감사합니다~!

LocationPermission.denied관련 질문입니다

0

588

1

videocontrollor dispose

0

431

1

onlogotap함수의 video nullable관련질문

0

391

1

setState 사용 차이

1

441

1

블로그 웹앱 배포 방법

0

506

1

sizedbox 위젯에 primary = RED_COLOR

1

432

1

개념 강의 순서 질문

0

408

1

materialstateProperty 다른 메소드관련질문

0

414

1

내 노트 모아보기

0

501

1

SafeArea (iPhone, Android)

0

407

1

web view 실행 안됩니다.

0

408

1

랜덤 숫자 생성기 프로젝트 관련

0

535

2

안도르이드 애뮬레이터 질문

0

384

1

super를 사용하는 건, 부모와 자식 클래스의 파라미터 이름이 꼭 같아야하나요?

0

472

1

선생님 flutter device를 크롬으로 했을때 http 통신이 안됩니다..

0

781

1

no element

0

441

1

암호화

0

234

1

책과 강의

0

386

1

voidcallback함수와 클래스내에 변수선언에 관한질문

0

474

1

android studio 세팅

0

479

1

오늘도 출근 세팅하기

2

562

1

재사용 클래스 임폴트 방법

0

479

1

가상화를 못하는 CPU인건가요? 확인 부탁드립니다.

0

399

1

flutter dispose 관련

0

1389

2