위젯내에서 다트문법을 쓸수 있고 없고 구분 방법
151
작성한 질문수 3
StatefulWidget 라이프 사이클 실습 세팅하기 편에서 4분 30초쯤 보면 리스트에서는 if 문을 쓸수있는데 Column에는 if 문을 못 쓴다라고 해서 궁금증이 생겼습니다.
다트 문법은 언제 쓸수 있고 없는지 초보자 입장에서 어떻게 구분 하면 될까요?
답변 2
0
안녕하세요!
위젯 내에서 다트 문법을 사용 할 수 있는게 아니라 말씀하신 부분이 Dart 문법의 정의입니다.
Dart 문법은 원래 리스트 내부에서 if문 사용이 가능하도록 하고 있습니다.
예를들어
[
if(false)
Container(),
Container(),
]
위 코드의 경우 아래 컨테이너 하나만 렌더링 하게 됩니다.
항상 기억하셔야할게 위젯은 특별한 문법이 아닙니다. 단순히 클래스이고 화면에 렌더링할때 인스턴스화 하는 것 뿐이라 다트문법의 모든 규칙에 구속됩니다.
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다. 아싸쿨피스님.
Flutter와 Dart를 처음 배우는 단계에서 이러한 문법적인 부분은 조금 혼란스러울 수 있습니다. 다트 언어에서 제공하는 다양한 기능과 플러터 위젯 트리를 다루다보면, 각 환경에서 사용할 수 있는 문법이 구분되기 시작합니다.
1. 리스트 구문에서 if 문 사용:
Dart에서는 리스트를 정의할 때 짧은 문법을 통해 조건부 요소를 추가할 수 있습니다. 예를 들어, [if (condition) Widget()] 같은 방식으로, 조건에 따라 리스트에 요소를 추가할지 말지를 결정할 수 있습니다.
2. Flutter 위젯 트리 내에서의 사용 제한:
반면, Column과 같은 위젯에서는 directly if 문을 사용하는 것이 불가능합니다. 위젯 트리는 정적으로 컴파일되며, 빌드 트리의 노드로서 위젯이 들어가기 때문에, 직접 코드를 삽입할 수 있는 구조가 아닙니다. 대신, 위젯 리스트를 사용할 때 다트 문법을 활용하여 조건에 따른 위젯을 추가할 수 있습니다.
만약 이러한 차이점이 더 심화된 설명이 필요하다면, 강의의 문맥에서 이를 설명한 부분을 다시 확인해보시면 도움이 될 것입니다.
아래 링크들을 통해 유사한 질문과 답변을 확인하실 수 있습니다:
- StatefulWidget Life Cycle 관련 질문
- 커스텀 위젯 변수 선언 위치 차이
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
198강 (){onTap(e);}의 이해 돕기
0
26
1
video_call 플러그인 설치후 에러 발생
0
45
1
SDK 안드로이드 설치 질문!
0
59
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





