inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

미세먼지앱 코딩 중 데이터를 못 가져오고 있습니다 ㅠㅠ

114

퓅호

작성한 질문수 2

0

안녕하세요 코트팩토리님! 열심히 수강중인 수강생입니다.

현재 제가 미세먼지앱에서 데이터베이스에서 데이터 가져오기 파트를 듣는 중에

만약 !snapshot.hasData이라면 '데이터가 없습니다' 라고

코드를 치고 에뮬레이터를 실행을 해본 뒤로 계속 위에 이미지와 정보들은 사라지고 '데이터가 없습니다' 만 뜨고 있는 상황입니다.

그래서 왜 데이터가 없을까라는 생각에 막 이곳저곳 둘러보고 썼다 지우고 하다가 stat_repository에 print를 추가해보았습니다.

static Future<void> fetchData() async {
  final isar = GetIt.I<Isar>();

  for (ItemCode itemCode in ItemCode.values) {
    print('ItemCode: ${itemCode.name}');
    await fetchDataByItemCode(itemCode: itemCode);
  }

중간에 저렇게 추가를 하였더니

I/flutter ( 3033): ItemCode: SO2

I/flutter ( 3033): ItemCode: SO2

D/EGL_emulation( 3033): app_time_stats: avg=2533.58ms min=26.00ms max=11703.56ms count=5

I/flutter ( 3033): ItemCode: SO2

E/flutter ( 3033): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>' in type cast

밑에 로그에 이렇게 떠서 뭔가 이상하다 싶어 고쳐볼려 했으나 고치는 방법도 잘 모르겠고 저게 원인이 맞는지도 잘 모르겠습니다.. 미세먼지 파트가 어려워서 중간에 끊고 다시 듣는 중에 여기까지 와서 다시 돌아가긴 아깝고 제가 건드리면 더 엉망이 될까봐 이렇게 질문 드립니다.

flutter 클론코딩

답변 2

0

코드팩토리

안녕하세요!

타입 관련 에러로 보입니다. 값들이 정확히 받아지고 있는지 확인 해보세요!

(가끔 API에서 null이 명세되지 않은 API에 null이 반환되는 경우가 있습니다)

감사합니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 퓅호님, 미세먼지 앱 개발 중 데이터 페칭 문제로 고민이 많으셨군요.

이 문제가 발생하는 원인은 보통 데이터 타입과 관련이 있습니다. 로그에 나타난 에러 메시지인 List<dynamic>List<Map<String, dynamic>> 형식으로 캐스팅되지 않는다는 것을 보면, JSON 데이터를 파싱할 때 타입 변환 부분에서 문제가 발생하는 듯합니다.

여기서 주의해야 할 점은 fetchDataByItemCode 함수 내에서 JSON 데이터를 List<Map<String, dynamic>> 타입으로 변환할 때 올바른 변환 규칙을 적용했는지 확인하는 것입니다. 아마도 API 응답이 예상과 다른 형식이었거나, 실수로 타입 변환 부분에서 코드를 잘못 작성했을 가능성이 높습니다.

다음과 같은 방법으로 에러를 해결해볼 수 있습니다:
1. API 응답이 실제로 어떤 형태로 오는지 확인합니다. Postman이나 네트워크 로깅을 통해 데이터를 확인해보세요.
2. JSON 데이터를 파싱할 때 List<Map<String, dynamic>> 타입으로 변환하는 부분의 코드를 다시 한 번 점검하시고, 데이터 구조에 맞게끔 변환 규칙을 조정합니다.
3. 가능하다면 해당 강의와 코드를 비교하여 차이가 있는지 살펴보세요.

이전 답변 중에 비슷한 문제로 도움을 받은 다른 질문 내용과 답변을 링크합니다:
- 스타일링 마무리 진행시 에러 발생: 데이터 불러오기 및 처리 중 발생하는 타입 변환 문제에 대해 논의된 사례입니다.
- 포스트맨 및 앱 오류 질문입니다: API 호출 시 오류 처리를 어떻게 다룰 수 있는지 관련하여 참고 가능합니다.

질문을 통해 해당 문제를 명확히 해결하지 못했을 경우, 추가 정보를 토대로 다른 회원들과 강사님께서 더욱 구체적인 해법을 제공할 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

198강 (){onTap(e);}의 이해 돕기

0

26

1

video_call 플러그인 설치후 에러 발생

0

45

1

SDK 안드로이드 설치 질문!

0

60

1

코드팩토리 디스코드 링크 다시 부탁드려요~

0

92

1

Webview를 이용해서 URL 상의 페이지 출력 불가

0

70

1

홈스크린 함수를 함축해서 main.dart에 옮기는 문제

0

55

1

플레이스토어

0

59

1

아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?

0

55

1

가이드라인 질문

0

57

0

emulator 에러 환경설정 뭐가 문제 일까요??

0

76

1

emulator 실행 오류

0

93

3

Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련

0

71

1

pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의

0

43

1

setState()를 호출하지 않으면 build가 실행 안되는 건가요?

0

53

1

video_call 플러그인 설치시 에러문제

0

64

1

children 안의 if 문에서 { } 못쓰는 이유?

0

48

1

이렇게 오류가 떠요

0

63

1

AppBar 사용했는데

0

61

2

[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다

0

56

1

StatefulWidget 실습 에러가 발생합니다.[해결완료]

0

63

1

Video Player 프로젝트에 대한 추가 질문

0

53

0

Row위젯이나 column위젯의 위치는 누가 정하나요??

0

42

1

geolocator 오류때문에 개발진행이 불가능입니다

0

63

1

API 관련 이슈

0

86

2