강의

멘토링

커뮤니티

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

민석 김님의 프로필 이미지
민석 김

작성한 질문수

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

defaultBoxDeco 선언 위치에 대해 질문이 있습니다.

작성

·

250

1

안녕하세요 :)

강의 잘 듣고 있습니다!

defaultBoxDeco 스타일이 공통적으로 사용된다는 이유로
"Build" 메소드에서 선언을 하셨는데요!
이렇게 하면 메소드가 호출될 때마다 변수를 계속 선언해서
"_CalendarState" 클래스에 넣는게 낫다고 생각을 했는데 혹시 build 메소드 내에서 선언하신 이유가 있는지요!

특정 상황에서 TextStyle이 const로 선언되지 않아서 const constructor를 사용하지 못하는 경우가 있던데, 이런 상황 때문에 그런건가용?
(아직 기초가 확실하지 않아 두서 없는 질문 죄송합니다 ㅠ)

감사합니다!



답변 1

1

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

안녕하세요!

클래스 변수로 선언하는 경우는 "상태"로 관리하고싶을때입니다.

build() 함수에 선언하는 경우는 빌드 될때마다 변경된 상태에의해서 새로 값이 업데이트가 되기만하면 되는경우죠.

제 기억이 맞다면 질문주신 상황은 어디에 넣어도 큰 차이가 없는 상황입니다. 편의상 build() 함수에 선언한것이니 크게 신경 안쓰셔도 될 것 같습니다.

말씀하신대로 클래스의 속성으로 선언하는게 좀 더 깔끔하게 느껴지신다면 그렇게 하셔도 아무 상관이 없습니다!

다만 간혹 스타일을 불러올때 context가 필요한 경우가 있는데 그때는 build() 함수에 작업하셔야합니다. context는 build() 함수에서만 액세스 가능하고 클래스 속성으로는 액세스가 안되기때문이죠!

민석 김님의 프로필 이미지
민석 김

작성한 질문수

질문하기