• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

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

24.03.18 19:18 작성 조회수 85

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()가 없어도 상관 없습니다.

감사합니다!