• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

context 관련 질문입니다!

23.07.15 01:32 작성 23.07.15 01:32 수정 조회수 329

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

안녕하세요~!

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

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

감사합니다.

안일호님의 프로필

안일호

질문자

2023.07.17

감사합니다!

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

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

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

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

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

감사합니다.