static const List<Widget> _widgetOptions = <Widget>[
    HomePage(), //여기 중요
    Text(
      'Index 1: Search',
    ),
    Text(
      'Index 2: Account',
    ),
  ];

 

이런식으로 _widgetOptions 리스트를 선언했더니

1. The values in a const list literal must be constants.
Try removing the keyword 'const' from the list literal. 

- const 리스트 리터럴의 값은 상수여야합니다. 리스트 리터럴에서 키워드 'const'를 제거해보십시오.

 

2. The constructor being called isn't a const constructor.
Try using 'new' to call the constructor.

- 호출되는 생성자가 const 생성자가 아닙니다. 생성자를 호출하려면 'new'를 사용해보십시오.

 

3. Const variables must be initialized with a constant value.
Try changing the initializer to be a constant expression.

- 상수 변수는 상수 값으로 초기화해야합니다. 이니셜 라이저를 상수 표현식으로 변경해보십시오.

 

이런식으로 에러 3개가 떴다.

 

에러의 원인

 에러의 해결 방법은 간단하게 List 선언할 때 const를 제거하여 해결되었지만, 이런 해결법보다 중요한 개념인 에러의 원인은 HomePage()에 있었다. const는 컴파일타임에 결정되는데, HomePage()는 컴파일타임에서 결정되지 않기 때문에 에러가 터진 것이었다. 즉, 숫자 값을 주거나, 색상값을 주는 행위는 const를 붙여도 상관없지만, HomePage()와 같이 클래스, 함수를 부르는 것은 적합한 형태가 아닌 것이다.