inflearn logo
강의

講義

知識共有

[コードファクトリー] [初級] Flutter 3.0 アプリ開発 - 10個のプロジェクトで今日、初心者脱出!

ステータス上位に上げる

VoidCallback 뒤에 null 연산자 표기에 관한 질문

43

novellus

投稿した質問数 3

0

null 연산자 표기에 관해 의문사항이 생겼습니다.

U&I 에서는 iconButton에 정의에 아래와 같이 적혀 있어 VoidCallback 뒤에 null 연산자를 표기하는 것으로 이해했습니다.

ElevatedButton 역시 위와 같이 정의되어 있지만 이번 강의에서는 표기가 안되있어서 기존에 작성했던 U&I 코드로 가 null 연산자를 제거해보니 정상적으로 동작하는 것을 확인했습니다.

null 연산자 관련 에러 로그가 없다면 표시를 생략해도 되는 것인지, 아니면 이와 상관없이 위젯 정의에 명시된대로 표기하는것이 권장사항인지 의문이 들어 질문드립니다.

flutter 클론코딩 section19 상태상위로올리기

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. novellus님.

Flutter에서 버튼의 onPressed 속성과 같은 콜백을 정의할 때 null 가능성을 나타내기 위해 타입에 물음표(?)를 추가할 수 있습니다. 이는 해당 콜백이 null일 수도 있음을 의미합니다. 아래에 자세한 설명을 드리겠습니다.

  1. null 가능성과 물음표 사용:

    • 만약 VoidCallback?와 같이 물음표를 사용하면 그 콜백은 null일 수 있음을 나타냅니다. 이는 해당 콜백을 반드시 구현할 필요가 없을 때 유용합니다.
    • VoidCallback처럼 물음표 없이 사용할 경우, 그 콜백은 null이 아니어야만 합니다.
  2. 위젯의 정의에 따른 사용:

    • IconButton이나 ElevatedButton 등의 위젯에서는 기본적으로 onPressed가 null 가능하다는 가정을 하고 설계되었습니다. 즉, 만약 해당 콜백을 명시하지 않으면 버튼이 비활성화됩니다.
  3. 실제 사용 시:

    • null 연산자가 명시되지 않은 경우, 그리고 에러 로그가 발생하지 않는다면, 해당 시점에서는 null을 지정하지 않더라도 문제없이 동작할 수 있습니다.
    • 그러나, 코드의 명확성과 유지보수성을 위해서는 위젯의 정의에 따라 명시적으로 타입을 지정하는 것이 더 권장될 수 있습니다.

관련 질문 URL은 아래와 같습니다:
- null 연산자 관련 플러터에서의 사용에 관한 논의

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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

0

41

1

SDK 안드로이드 설치 질문!

0

56

1

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

0

90

1

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

0

63

1

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

0

51

1

플레이스토어

0

57

1

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

0

52

1

가이드라인 질문

0

55

0

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

0

75

1

emulator 실행 오류

0

91

3

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

0

68

1

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

0

41

1

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

0

51

1

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

0

61

1

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

0

46

1

이렇게 오류가 떠요

0

61

1

AppBar 사용했는데

0

60

2

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

0

54

1

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

0

61

1

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

0

50

0

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

0

38

1

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

0

61

1

API 관련 이슈

0

83

2

toList() 코드가 사라진 이유에 관한 질문

0

77

1