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

안일호님의 프로필 이미지
안일호

작성한 질문수

Flutter 앱 개발 실전

AssetIcon

context 관련 질문입니다!

해결된 질문

작성

·

415

·

수정됨

1

섹션3 / AssetIcon / 04:41~04:51 / Line24

color ?? context.color.text,

04:47에서 context.co까지만 입력해도 자동완성이 뜨는데요.

Q1. context가 어떤걸(어떤 파일의 어떤 클래스?) 지칭하는지 궁금합니다

Q2. 어떤 매커니즘으로 theme_service import가 자동완성으로 뜨는지 궁금합니다(어떻게 인식했는지..?)

질문이 난해할 수도 있는데, context에 관한 질문입니다!

답변 1

2

DevStory님의 프로필 이미지
DevStory
지식공유자

안녕하세요~!

섹션3 후반부에 BuildContext 챕터에서 BuildContext가 무엇인지 상세하게 설명드리고 있으니 해당 챕터를 참고 부탁드립니다 :)

theme_service.dart 파일이 자동으로 뜨는 기능은 VSCode에서 제공하는 기능으로, BuildContext를 extension 하여 context.color를 추가한 구문을 VSCode가 기억하고 있다가 코드 입력시 해당 코드가 위치한 파일을 추천해주는 것으로 이해하실 수 있습니다. 간혹 자동 완성이 안뜨는 경우도 있는데, 이땐 해당 코드가 있는 파일에서 저장(Ctrl/Cmd + S)를 눌러주셔야 VSCode에서 추천을 해주는 경우도 있습니다.

감사합니다.

안일호님의 프로필 이미지
안일호
질문자

감사합니다!

두번째 질문은, 자동완성으로 뜰 수 있는 많은 것들 중에 어떻게 theme_service를 딱 인식했는지에 관한 질문이었습니다..!

BuildContext 파트를 참고하여 연구해보겠습니다 감사합니다~~

DevStory님의 프로필 이미지
DevStory
지식공유자

두 번째 질문 추가 답변 드립니다.

기존 BuildContext 클래스에는 color 라는 getter 함수가 존재하지 않기 때문에 context.color라고 입력하더라도 아무런 자동완성도 뜨지 않는게 맞습니다.

하지만 theme_service.dart 파일에서 Dart의 extension 문법을 활용하여 BuildContext 클래스에 color getter 함수를 추가해 주었고, 이를 VSCode가 알고 있기 때문에 context.color라고 입력하는 경우, theme_service.dart 파일을 import 하라고 추천해주게 됩니다 :)

감사합니다.

안일호님의 프로필 이미지
안일호

작성한 질문수

질문하기