This class is marked as '@immutable', but one or more of its instance fields aren't final

Angela Jeong·2024년 4월 8일
0

Flutter Troubleshooting

목록 보기
14/19

FutureBuilder를 사용하면서 StatefulWidget을 StatelessWidget으로 되돌릴 수 있었다.
그런데 아래 그림처럼 HomePage에 경고가 떴다.

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: HomePage.webtoons

StatelessWidget은 immutable이다. 즉 앱의 전체 수명주기 동안 변하지 않아야 하는데 webtoons 변수는 final이 아니기 때문에 immutable을 위반한다는 뜻이다.


해결방법

  • final을 붙이면, webtoons는 한 번 초기화되고 나면 변경될 수 없게 되어 @immutable 조건을 충족시키게 된다.
  • HomePage 인스턴스는 생성 시에만 webtoons를 설정할 수 있고, 이후에는 그 값이 변경되지 않음을 보장하게 된다!

*참고
StatelessWidget: 한 번 생성되면 변경되지 않는 위젯으로, 모든 변수는 final이어야 한다.
StatefulWidget: 내부 상태가 시간에 따라 변경될 수 있는 동적인 UI 요소를 구현할 때 사용된다.

0개의 댓글