-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
class 선언 오류
20.08.01 19:14 작성 조회수 1.44k
0
///widget_candidate.dart 파일///
class CandWidget extends StatefulWidget {
VoidCallback tap;
String text;
int index;
double width;
bool answerState;
CandWidget({this.tap, this.text, this.index, this.width, this.answerState});
_CandWidgetState createState() => _CandWidgetState();
}
///screen_quiz.dart 파일///
class QuizScreen extends StatefulWidget {
List<Quiz> quizs;
QuizScreen({this.quizs});
@override
_QuizScreenState createState() => _QuizScreenState();
}
각 class CandWidget, QuizScreen 가 이렇게 오류가 뜹니다.ㅠㅠ
This class (or a class that this class inherits from) is marked as '@immutable', but one or more of its instance fields aren't final: CandWidget.tap, CandWidget.text, CandWidget.index, CandWidget.width, CandWidget.answerStatedartmust_be_immutable
답변을 작성해보세요.
0
권태뽕
지식공유자2020.08.13
넵 안녕하세요! 해당부분은 final로 선언했는데 밑에서 값을 변경해서 그렇습니다. 이건 제가 final로 선언하지 않고 만들어서 그렇게 된 것인데, 로직을 많이 변경해야해서 당장 바로 답변 드리기 어렵습니다ㅠㅠ 추후에 전체 공지 및 업데이트를 통해 개선된 코드 공유드리겠습니다. 감사합니다:)
0
이진희[학생](예술디자인대학
질문자2020.08.10
답변 감사드립니다!
class CandWidget extends StatefulWidget {
final VoidCallback tap;
final String text;
final int index;
final double width;
final bool answerState;
CandWidget({this.tap, this.text, this.index, this.width, this.answerState});
_CandWidgetState createState() => _CandWidgetState();
}
final을 붙여줄 경우 bool에 한해서 이러한 에러가 나옵니다ㅠㅠㅠ
0
권태뽕
지식공유자2020.08.04
안녕하세요! 강의 들어주셔서 감사합니다:)
본 이슈는 클래스 선언 시 변수를 final로 선언하지 않아 발생한 것인데, 제가 했을 땐 에러보단 경고가 나왔었는데 에러가 발생하셨군요..!
클래스 내부에 선언한 변수들에 대해 final List quizs; 와 같은 방식으로 앞에 final을 붙이면 해결될 것 같습니다.
final을 붙이는 것은 클래스 내부의 변수를 수정할 수 없게끔 만드는 것이며 이렇게 하면 클래스로 인스턴스를 생성할 때에만 변수에 값을 넣을 수 있습니다.
감사합니다:)
답변 3