위 오류로 다트 공식문서의 Diagnostic messages 부분을 찾아보는데 이해가 가지 않았다.
코드는 이러했다.
Widget _buildBody(dynamic index) {
switch(index) {
case 0:
return MainPage();
case 1:
return CatalogPage();
case 2:
return NotificationPage();
case 3:
return MorePage();
}
}
근데 null 타입 반환과 관련한 문제를 다루는 것 같았고 스택오버플로에서 받은 답변 또한 비슷한 얘기를 했다.
"If the above case doesn't satisfy, widget will return nothing. You can include default on switch."
위젯이 아무것도 리턴하지 않을거라고..
클론 코딩 과정에서 case 문에 작성되어있는 리턴할 함수들이 패키지내 다른파일에서 작성되지 않은 상태였고 당연히 불러올 수가 없었다. 기본 메서드들이 아니기 때문에 만들어지지 않은 상태에서 사용될 수가 없던 것..
해결방법은 간단하다.
case문을 주석처리 해주고
Switch문 안에 default 문을 작성해 준다.
default:
switch (index) {
case 0:
return MainPage();
case 1:
return CatalogPage();
case 2:
return NotificationPage();
case 3:
return MorePage();
default: //this
return Text("default");
}