작성
·
773
·
수정됨
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
코드팩토리 디스코드
https://bit.ly/3HzRzUM
Flutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
안녕하세요 !!
궁금한게 있어서 질문 드립니다
지역 변경후 값 받아오는 곳에서
"jeonbuk":null
이값으로 받아오는데
jeonbuk = double.parse(json['jeonbuk'] ?? '0'),
null처리 한곳에
'0' 으로 변환 해주면 에러가 나오고
Bad state: No element
See also: https://flutter.dev/docs/testing/errors
jeonbuk = double.parse(json['jeonbuk'] ?? '0.01' ),
'0' 이상 값으로 변환하면 정상적으로 나오는데
이유가 궁금합니다 .
답변 3
0
0
data_utils.dart 의 getStatusFromItemCodeAndValue 함수 수정이 필요합니다.
stat_model.dart에서 ‘전북’이 null이면, 0으로 처리가 되어 있음. 그런데 data_utils.dart의 아래 부분의 'return status.minFineDust < value'를 보면 minXX의 최소값이 0이기에 '0<0'이 되어서 모두 false가 됩니다.
'return status.minFineDust < value'를 ''return status.minFineDust <= value'로 value보다 '작거나 같음'으로 변경하여 임시 방편으로 오류 처리 가능합니다.
(실제 미세먼지 서비스라면) 미세먼지 공공데이터가 null을 리턴하는 경우 '미세먼지 데이터 없음'으로 표시 하거나, '가장 최근에 정상적으로 수신 값'을 반영해주는 방법이 있겠습니다.
static StatusModel getStatusFromItemCodeAndValue({
required double value,
required ItemCode itemCode,
}) {
return statusLevel.where((status) {
if (itemCode == ItemCode.PM10) {
return status.minFineDust < value;
} else if (itemCode == ItemCode.PM25) {
return status.minUltraFineDust < value;
} else if (itemCode == ItemCode.CO) {
return status.minCO < value;
} else if (itemCode == ItemCode.O3) {
return status.minO3 < value;
} else if (itemCode == ItemCode.NO2) {
return status.minNO2 < value;
} else if (itemCode == ItemCode.SO2) {
return status.minSO2 < value;
} else {
throw Exception('알수없는 ItemCode입니다.');
}
}).last;
}
0
안녕하세요!
질문주신 내용만으로 봤을때는 의심하고계신 부분의 문제가 아닌 것 같습니다.
void main() {
print(double.parse('0'));
}
위 코드를 실행하면 0이 잘 출력됩니다.
에러 위치를 조금 더 정확히 파악해보시고 추가 질문 부탁드립니다!
감사합니다.
답글 감사합니다!