inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Flutter 앱 개발 실전

AssetIcon

context 관련 질문입니다!

해결된 질문

481

안일호

작성한 질문수 7

1

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

color ?? context.color.text,

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

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

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

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

flutter dart context

답변 1

2

DevStory

안녕하세요~!

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

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

감사합니다.

1

안일호

감사합니다!

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

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

2

DevStory

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

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

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

감사합니다.

수강 기한 연장 요청드려도될까요..

1

48

2

37.provider 실습 문제점, 카트에서 상품이 지워지지 않습니다.

1

75

2

다트 프로젝트

1

51

2

context.read<LangService>().toggleLang 해도 언어가 변경되는 이유

1

74

3

수강 기간 연장 신청 요청드립니다.

1

68

3

수강기간 연장 부탁드립니다.

1

58

3

제공해주신 flutter_design_system 라이브러리 질문입니다.

1

53

2

수강 기간 연장 부탁드립니다

1

52

2

수강 기한 연장

1

78

3

강의 잘 보고있습니다!

1

59

2

애뮬레이터 실행 오류

1

69

2

pdf 강의노트

1

62

2

수강기간 연장 부탁드립니다.

1

86

2

수강 기간 연장 요청

1

86

2

수강기간 연장 부탁드립니다

1

129

2

코드 생성기 - build runner 관련 오류

1

110

1

디자인 시스템 구성에 대해 질문 드립니다

2

145

2

CartItem 추가시

1

95

2

const 커스텀클래스

1

95

1

강의 수강 기간 연장 요청드립니다.

1

127

2

코드 생성기 - 실습 build runner 안 되는 분.

1

270

2

Flutter 강의자료 열리지 않는 문제

1

165

2

riverpod 프로젝트에 궁금한점이 있어 질문 남깁니다.

1

123

2

수강 기강 연장 부탁드리겠습니다! :ㅇ

1

88

2