앱/Flutter

[Flutter] Flutter 3.7.x에서 발생하는 flutter_staggered_grid_view LateInitializationError 수정하기

paran21 2023. 8. 28. 20:44

최초작성일: 2023년 4월 5일

이번에 플러터 버전을 업데이트하면서 새로운 에러들을 확인하고 있다.

그 중 LateInitializationError는 에러가 발생하는 위젯/하위 위젯 모두 late나 nullable로 선언된 변수가 없어서 왜 발생하는지 알 수가 없었다.

LateInitializationError: Field '_children@25042623' has not been initialized.

플러터와 패키지 버전을 올린 이후에 발생한 문제라서 패키지에서 발생한 문제인지 의심했고, 에러 로그에서 문제가 되는 패키지의 경로를 확인할 수 있었다!!

그래서 구글링 결과, 해당 패키지 깃헙에서 이슈를 확인할 수 있었다.

해결 방법은 다음과 같다! (출처)

@override
Widget build(BuildContext context) {
  return StaggeredGrid.count(
    axisDirection: AxisDirection.down, // <----- Add this line
    crossAxisCount: 7,
    mainAxisSpacing: 1,
    crossAxisSpacing: 1,
    children: [
      StaggeredGridTile.count(
        crossAxisCellCount: 7,
        mainAxisCellCount: 1,
        child: FittedBox(
          fit: BoxFit.contain,
          child: Padding(
            padding: const EdgeInsets.all(8.0),
            child: Text(DateFormat(DateFormat.MONTH).format(DateTime.now())),
          ),
        ),
      )
    ],
  );
}

앞으로 버전 업데이트 후 발생한 문제는 관련된 이슈를 먼저 찾아보자!