inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

BottomSheet 디자인 마무리하기

GestureDetector 부분 onTap 함수 VoidCallBack 함수로 감싸는 이유?

182

SungWoo Jo

작성한 질문수 4

0

아래의 코드중에 온탭 생성자 부분에서 바로 onTap(e)를 사용하지 않고 보이드콜백 함수로 감싸줘야하는 이유가

child: GestureDetector(
                onTap: () {
                  ontap(e);
                },

해당 부분에서 onTap 메소드? 함수가 받는 형식은

제스처콜백 타입으로

typedef GestureTapCallback = void Function();

이지만 저희가 생성한 새로운 자료형은

void Function(String selectedColorName);

형태이기때문에 완전한 형식을 지켜주는 (){} 형태가 최 상단에 위치하고 그 아래에 저희가 사용하고자 하는 형태로 만들어진 함수를 다시 불러와줌으로서 논리적으로 작동하게 만들어주는게 맞나요?

생성한 onTap함수만 넣어서 에러를 읽어봤는데 제대로 이해가 안되서 질문 남깁니다.

flutter 클론코딩

답변 1

1

코드팩토리

안녕하세요!

onTap에 입력돼야하는 타입은 이미 정해져있고 저희가 정의한 타입은 onTap의 타입과 일치하지 않기 때문에 onTap 내부에 함수를 실행합니다!

만약에 타입이 일치하더라도 onTap(e)가 아니라 onTap <- 괄호 없이 넣어줘서 정의만 전달해야 나중에 콜백으로 (탭한 후에) 함수 실행이 가능합니다. 왜냐면 탭했을때 onTap 괄호 없이 넣어준 함수를 실행해서 onTap() <- 이렇게 실행해주기 때문에 만약에 onTap()을 직접 제공한다면 onTap()()가 됩니다. 즉, 함수를 반환해야하는 상황이 되는거죠.

감사합니다!

198강 (){onTap(e);}의 이해 돕기

0

26

1

video_call 플러그인 설치후 에러 발생

0

45

1

SDK 안드로이드 설치 질문!

0

60

1

코드팩토리 디스코드 링크 다시 부탁드려요~

0

92

1

Webview를 이용해서 URL 상의 페이지 출력 불가

0

70

1

홈스크린 함수를 함축해서 main.dart에 옮기는 문제

0

55

1

플레이스토어

0

59

1

아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?

0

55

1

가이드라인 질문

0

57

0

emulator 에러 환경설정 뭐가 문제 일까요??

0

76

1

emulator 실행 오류

0

93

3

Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련

0

71

1

pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의

0

43

1

setState()를 호출하지 않으면 build가 실행 안되는 건가요?

0

53

1

video_call 플러그인 설치시 에러문제

0

64

1

children 안의 if 문에서 { } 못쓰는 이유?

0

48

1

이렇게 오류가 떠요

0

63

1

AppBar 사용했는데

0

61

2

[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다

0

56

1

StatefulWidget 실습 에러가 발생합니다.[해결완료]

0

63

1

Video Player 프로젝트에 대한 추가 질문

0

53

0

Row위젯이나 column위젯의 위치는 누가 정하나요??

0

42

1

geolocator 오류때문에 개발진행이 불가능입니다

0

63

1

API 관련 이슈

0

86

2