웹뷰컨트롤러 위젯 사용 내 코드에 const 불가 관련 문의
254
작성한 질문수 9
안녕하세요!
하기 코드 중에서 WebViewController는 const생성자가 존재하기 않기 때문에, HomeScreen앞에 const를 지워야 오류가 해결된다고 해주셨는데요,
두 코드는 각 다른 줄로 서로 영향을 미치지 않아보이는데, 한 코드에서 다른 코드에 영향을 주는 구조일까요?
class HomeScreen extends StatelessWidget {
WebViewController controller = WebViewController()
Const HomeScreen({super.key});
답변 2
0
안녕하세요!
AI가 잘 설명을 해주었는데 저도 한번 더 설명드리면 WebViewController() 값이 const가 아니기 때문에 HomeScreen을 인스턴스화 할때 const 키워드를 사용 할 수 없기 때문입니다.
기억이 잘 안나신다면 제 OOP강의 참고해주세요!
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다.
질문해주신 내용에 대해 Flutter에서 const 키워드 사용 관련하여 WebViewController 와 생성자에 const를 사용할 수 없는 이유를 설명드립니다.
Flutter에서 const 키워드를 사용하는 경우, 해당 인스턴스가 컴파일 타임에 결정되며 변하지 않는 값을 갖게 됩니다. 이는 특정 위젯이나 클래스 인스턴스가 앱이 실행되는 동안 동일하게 유지되어야 할 때 유용하게 사용됩니다.
하지만, WebViewController와 같이 런타임에 상태가 변경될 수 있는 객체에 대해 const 생성자를 사용하려 하면, 컴파일 타임에 해당 객체의 상태를 결정할 수 없기 때문에 오류가 발생합니다. WebViewController 인스턴스는 웹 페이지 로딩이나 사용자 상호작용 등의 이유로 상태가 변할 수 있는 객체이므로, const로 선언할 수 없습니다.
특히, HomeScreen 위젯에서 WebViewController를 사용하게 되면, HomeScreen의 생성자 역시 const로 표시될 수 없습니다. const 생성자 안에서는 모든 필드가 컴파일 타임에 결정되고 변하지 않아야 하는데, WebViewController 같은 런타임에 변할 수 있는 객체를 멤버 변수로 갖게 되면 이 규칙에 어긋나게 됩니다.
여러분의 질문과 관련하여 찾아본 자료 중, “const를 왜 없애줘야 하나요?ㅜㅜ” 질문에서 코드팩토리 강사님이 제공한 답변이 도움이 될 수 있습니다. 강사님은 const의 사용 조건과 WebViewController 같이 런타임에 상태가 변할 수 있는 객체를 다룰 때 const 사용이 불가능한 이유를 설명했습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
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





