인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

PARK JAE HYUNG님의 프로필 이미지
PARK JAE HYUNG

작성한 질문수

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

Table Calendar 소개 강의에서 질문있습니다.

작성

·

297

0

1번 질문. 7:46에 말씀하시는 "selectedDay값을 들고 있을게요."가 어떤 뜻인지 풀어서 알려주실 수 있나요?
2번 질문. 어떤 경우에 state가 들고 있는건지, 어떤 경우에
class Calendar extends StatefulWidget{
아랫줄에 넣는건지, 어떻게 구분하는 건가요?

답변 1

2

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

안녕하세요.

1) TableCalendar 위젯의 onDaySelected 함수는 저희가 특정 날짜를 선택할때마다 실행됩니다. 그리고 첫번째 파라미터에 선택된 날짜 (selectedDay)를 넣어주는데 이 값을 저희가 위젯에 저장해두면 어떤 날짜가 눌렸는지 기억해두고 지속적으로 사용할 수 있습니다. 결과적으로 "selectedDay 값을 들고 있을게요."라는 말은 사용자가 UI에서 선택한 날짜를 기억해두고 이 정보를 다른 함수에서 사용하겠다는 의도입니다.

2) StatefulWidget 클래스에 선언하는 변수와 State 클래스에 선언하는 변수는 근본적인 차이가 있습니다. StatefulWidget에 선언되는 변수들은 클래스 외부에서 파라미터로 값을 넣어줄때 이 값을 저장하는 용도로 사용됩니다. 반면에 State에 선언되는 변수들은 클래스 내부에서 변수를 관리하기위해 사용됩니다. 1번을 예로들면 selectedDay의 경우 State 클래스 내부에서 값이 변경되기때문에 State 클래스에 선언하게 됩니다.

PARK JAE HYUNG님의 프로필 이미지
PARK JAE HYUNG

작성한 질문수

질문하기