작성
·
38
0
안녕하세요.
flutter 중급 강의를 들으면서 궁금한 점이 생겨서 질문 드립니다.
지금까지 수많은 변수명들을 작성해 왔는데요.
그중에서 data라는 변수명들이이 클래스마다 여러곳에 배치되어 있는 느낌을 받았습니다.
그래서 헷갈려하지 않기 위해 앞의 약자를 덧붙여 자신만의 변수명을 만들어 왔습니다.
ex)
final List<T> data; --> final List<T> cpData;
하지만 [pagination params추가하기] 강의를 듣는 도중에 테스트를 해보니
E/flutter (21276): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'Null' is not a subtype of type 'List<dynamic>' in type cast
오류가 발생하였고
혹시 몰라서 data를 원래대로 되돌리고 실행해 보았는데 정상적으로 작동하였습니다.
변수명을 바꿀뿐이였는데 타입을 NULL로 인식하는 이유가 궁금합니다.
(콘솔창에 flutter pub run build_runner watch 실행중이였습니다.)
답변 2
0
안녕하세요!
으음... 일단 수강생분도 의문이 생기는 것 처럼 저도 같은 의문이 있습니다.
말씀 해주신 정보로는 문제가 생기는 안되는 부분이 맞을 것 같아요.
다만! 만약에 code generation 관련 문제였다면 몇가지 운없는 버그가 있었을 수 있습니다.
1) flutter pub run build_runner build/watch가 그 순간 제대로 실행되지 않았다!
2) 꼭 해당 필드로 이름을 지어야하는 경우였다. (제너레이터 자체에 특정 이유가 있었던 경우?)
제가 상상 해볼 수 있는건 이 두가지가 될 것 같습니다.
혹시 답변이 되셨을까요? 정확한 문제를 찾는다면 다시한번 말씀 주세요!
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다. 알로하님.
변수명을 변경하면 코드 전반의 다른 곳에서도 그 변수명을 일관되게 변경해야 합니다. data
라는 변수명이 여러 곳에 걸쳐 사용되고 있다가 변수명을 cpData
로 변경할 때, 모든 관련된 코드에서도 data
가 cpData
로 일관되게 바뀌지 않으면 예상치 못한 오류가 발생할 수 있습니다. 특히, Flutter에서는 데이터 바인딩이 많은데, 변수명을 잘못 지정하면 이러한 오류가 쉽게 발생합니다.
관련 질문과 유사한 경우에 대한 답변 URL을 아래에 첨부합니다.
- type Null is not a subtype of type List
위 링크에서는, 변수 이름을 잘못 지정했을 가능성을 언급하고 있습니다. 변수명이 일치하지 않으면 Dart가 예상한 데이터 타입이 null로 평가될 수 있습니다. 또한 flutter pub run build_runner watch
를 실행 중에 변경 사항이 올바르게 반영되지 않았을 수도 있습니다.
관련 이미지 및 원본 URL은 아래 링크에서 확인하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.