GestureDetector 부분 onTap 함수 VoidCallBack 함수로 감싸는 이유?
182
작성한 질문수 4
아래의 코드중에 온탭 생성자 부분에서 바로 onTap(e)를 사용하지 않고 보이드콜백 함수로 감싸줘야하는 이유가
child: GestureDetector(
onTap: () {
ontap(e);
},해당 부분에서 onTap 메소드? 함수가 받는 형식은
제스처콜백 타입으로
typedef GestureTapCallback = void Function();
이지만 저희가 생성한 새로운 자료형은
void Function(String selectedColorName);형태이기때문에 완전한 형식을 지켜주는 (){} 형태가 최 상단에 위치하고 그 아래에 저희가 사용하고자 하는 형태로 만들어진 함수를 다시 불러와줌으로서 논리적으로 작동하게 만들어주는게 맞나요?
생성한 onTap함수만 넣어서 에러를 읽어봤는데 제대로 이해가 안되서 질문 남깁니다.
답변 1
1
안녕하세요!
onTap에 입력돼야하는 타입은 이미 정해져있고 저희가 정의한 타입은 onTap의 타입과 일치하지 않기 때문에 onTap 내부에 함수를 실행합니다!
만약에 타입이 일치하더라도 onTap(e)가 아니라 onTap <- 괄호 없이 넣어줘서 정의만 전달해야 나중에 콜백으로 (탭한 후에) 함수 실행이 가능합니다. 왜냐면 탭했을때 onTap 괄호 없이 넣어준 함수를 실행해서 onTap() <- 이렇게 실행해주기 때문에 만약에 onTap()을 직접 제공한다면 onTap()()가 됩니다. 즉, 함수를 반환해야하는 상황이 되는거죠.
감사합니다!
198강 (){onTap(e);}의 이해 돕기
0
24
1
video_call 플러그인 설치후 에러 발생
0
45
1
SDK 안드로이드 설치 질문!
0
59
1
코드팩토리 디스코드 링크 다시 부탁드려요~
0
92
1
Webview를 이용해서 URL 상의 페이지 출력 불가
0
69
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





