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

온실속의감자님의 프로필 이미지
온실속의감자

작성한 질문수

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

다음 스크린에서 결과값 받아오기

setState()를 호출해야하는 부분에 대해 혼동이 있습니다.

해결된 질문

작성

·

166

0

안녕하세요. 강의를 듣다가 의문이 있어 질문 드립니다.

 

StatefulWidget에서 setState()메서드를 호출하는 것은 위젯의 변경이 필요하여 새로운 위젯으로 대체하기 위해 빌드를 요청하는 것으로 이해했습니다.

 

그런데 강의 내용 중 '섹션15 다음 스크린에서 결과값 받아오기' 7:30 설명해주실 때 다음과 같이 setState() 메서드를 사용해주셨는데요,

 

if (result != null) {
  setState(() {
    maximumNumber = result;
  });
}

위 코드에서 maximumNumber라는 변수는 위젯의 UI를 변경시키는 변수는 아닌 것 같습니다. maximumNumber가 result로 변경된다고 해서 위젯을 새로 그릴 필요가 없는데도 setState() 메서드를 호출해야 하나요?

 

제 생각을 정리하자면 다음과 같습니다.

  1. randomNumbers는 위젯의 변경을 야기한다. (랜덤숫자 생성)

  2. maximumNumber는 randomNumbers의 값을 변경할 때 사용되는 파라미터다.

  3. 그러나 maximumNumber의 변경 자체로는 위젯의 변경을 야기하지 않으므로 setState() 내부에서 값을 변경할 필요가 없다.

혹시 제가 잘못 생각하고 있는 부분이 있을까요?

감사합니다. :)

답변 1

0

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

안녕하세요!

좋은 분석입니다.

setState()가 없어도 상관 없습니다.

감사합니다!

온실속의감자님의 프로필 이미지
온실속의감자

작성한 질문수

질문하기