33,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결Flutter 초급 - Http통신, 상태관리
xcode 오류가 납니다.
import UIKit import Flutter @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { let controller = self.window?.rootViewController as! FlutterViewController let channel = FlutterMethodChannel.init(name : "example.com/testflutter", binaryMessenger : controller.binaryMessenger) channel.setMethodCallHendler {(call, result) in if(call.method == "getValue"){ result("성공") } else { result (FlutterMethodNotImplemented) } } GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } } - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 해당 코드고 오류가 나서 실행이 안되는 상황입니다. 해당 오류로는 13번째 줄에서 강의 영상을 보면서 똑같이 작업했는데 오류가 나면서 실행이 안됩니다. 발생 오류로는 13번째 줄에서 Value of type 'FlutterMethodChannel' has no member 'setMethodCallHendler' 또 하나는 22번째 줄에서 Cannot find 'GeneratedPluginRegistrant' in scope 라는 오류가 뜨는데 한번 확인 부탁드리겠습니다.
- 미해결Flutter 초급 - Http통신, 상태관리
dart 2.12 이상 버전에서 json object null safety 처리는 어떻게 하나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. json 형식으로 api 를 받아오는 경우가 많은데요. 이럴때 null safe 처리는 어떻게 해야 효율적일까요? chain 걸때마다 null safe 관련된 표기를 하면 에러 표기는 되지는 않는데 너무 지저분 해보여서요.. json object에 대한 null safe 처리를 어떻게 하면 좋을지 참고할만한 코드나 가이드를 알려주시면 감사하겠습니다. String getString(AirResult result) { if (result.data!.current!.pollution!.aqius! <= 50) { return '좋음'; } else if (result.data!.current!.pollution!.aqius! <= 100) { return '보통'; } else if (result.data!.current!.pollution!.aqius! <= 150) { return '나쁨'; } else { return '최악'; }}
- 미해결Flutter 초급 - Http통신, 상태관리
json to dart
붙여넣기 했더니 missing_default_value_for_parameter 오류가 15개 발생합니다.
- 미해결Flutter 초급 - Http통신, 상태관리
no sound null safety 오류
이거 어떻게 해결해야 할까요?
- 미해결Flutter 초급 - Http통신, 상태관리
단축키 상이 문의
alt+Enter 시 강사님 처럼 여러개가 나와서 선택 하면 해당 것으로 감싸게 되는 단축키가 안먹네요. 윈도우 입니다. 특별한 설정이 필요 할까요? 강사님은 mac 이고 저는 윈도우인데 alt+Enter 의 기능이 dart 파일에서 차이가 나는듯 합니다.
- 미해결Flutter 초급 - Http통신, 상태관리
AirResult _result 초기화 에러
1. main.dart 에서 AirResult 를 선언하면 초기화 하라는 에러가 발생합니다. AirResult _result======================================================= Non-nullable instance field '_result' must be initialized. Try adding an initializer expression, or a generative constructor that initializes it, or mark it 'late'. 초기화 방법에 대한 가이드 부탁드립니다. (late 를 추가해도 미세먼지를 표시하는 부분에서 아래와 같이 에러가 발생합니다.)2. late 로 바꾸던 바꾸지 않던 아래 볼드 처리된 코드에서도 에러가 발생합니다. 해결방법에 대한 가이드 부탁드립니다. children: <Widget>[ const Text('얼굴사진'), const Text( '${_result.data.current.pollution.aqius}', style: TextStyle(fontSize: 40)), const Text('보통', style: TextStyle(fontSize: 20)), ], ),============================================================== Evaluation of this constant expression throws an exception. Invalid constant value.3. 변수 선언을 아래와 같이 시도했지만 해결되지 않습니다. 참고해주세요. 1) late AirResult _result; 2) AirResult? _result;
- 미해결Flutter 초급 - Http통신, 상태관리
라이브러리 널세이프티 관련 오류
http라이브러리 최신버젼으로 업그레이드 시켜주셔야지 null safety 처리를 해줘서 테스트코드가 오류없이 잘 작동될거에요 참고하세요
- 미해결Flutter 초급 - Http통신, 상태관리
Appbar의 Tabbar를 누르면 다른 dart파일의 내용을 불러오고 싶어요
Appbar의 Tabbar를 누르면 다른 dart파일의 내용을 불러오고 싶어요 body: TabBarView( children: [ //첫번째 페이지 인사말 페이지(home_page) home_page(), Icon(Icons.show_chart_rounded), Icon(Icons.contact_page_rounded), Icon(Icons.contact_page_rounded),이렇게만 하면 home_page.dart 파일의 내용을 불러올수가 없더라구요...각가의 탭을 눌렀을때 어떻게 해야 다른 다트 파일의 내용을 불러올 수 있나요??
- 미해결Flutter 초급 - Http통신, 상태관리
MainActivity.kt 에러
안녕하세요. 강의 잘듣고있습니다. 여기서 부터 완전 먹통이라 SDK부터 뭔가 잘못 셋팅되었거나 한듯합니다. 어떻게 해결할 수 있을까요...? 아래 영상은 경로 셋팅되어있는거에 참고차 첨부합니다. SDK 셋업부터 잘못되어있다면 어떻게 수정하고 이 에러를 해결 할 수 있을까요...? 진도를 떠 빼고싶은데 못빼고 있어 문의 남깁니다. 감사합니다.
- 미해결Flutter 초급 - Http통신, 상태관리
Provider + StateLess 에서 ScrollController Dispose() 사용 문제 질문
Provider 를 사용하게 되면 StateLessWidget을 사용하는데 탭뷰를 다녀오면 리스트가 초기화되어서 이전에 보던 스크롤 위치를 고정시키려고 합니다. 이걸 하려고 보니 ScrollController를 사용해야 하던데 StateLess는 Dispose가 없어서 controller dispose를 하지 못합니다. Provider 를 사용하는데 StateFull 을 사용해야 하는 것인가요? TabView 로 다른 탭 갔다 오면 리스트 오프셋이 게속 0이네요 ㅠㅠ
- 미해결Flutter 초급 - Http통신, 상태관리
ver 6 올라가면서 완전 달라졌네요
강의를 보면서 다라서 코딩하다가 패키지가 바뀐거 보고 도큐먼트를 봤더니 엄청 바꼈네요. Cubit 으로 이벤트 작성이 훨씬 간결해졌더군요 지금 강의 보시는 분들은 개념만 잡고 새로 바뀐 내용에 맞춰 도큐먼트 보는 것을 추천합니다. https://pub.dev/packages/bloc
- 해결됨Flutter 초급 - Http통신, 상태관리
airvisual에서 api key를 받으려는데 다시 원래 메인 화면으로 돌아와여
안녕하세여 강사님 미세먼지앱 만들기 api 조사와 관련해 질문이 있습니다. 미세먼지 앱에 필요한 정보를 제공해주는 airvisual.com 에 접속해 apikey를 받으려고 하는데 잘안되여 api 메뉴를 클릭해서 create your api key 버튼을 눌러도 다시 원래 화면으로 돌아오는데 뭘 잘못한것일까여? 사이트 주소: https://www.iqair.com/commercial/air-quality-monitors/airvisual-platform/api알려주시면 감사여
- 미해결Flutter 초급 - Http통신, 상태관리
bloc부분에서 에러가 납니다.
안녕하세요 강의 듣던 중 bloc 최신버전으로 했을 때 오류가 납니다 class CartBloc 부분에 error가 납니다.. flutter_bloc: ^6.1.1 최신버전 사용했습니다
- 미해결Flutter 초급 - Http통신, 상태관리
http 통신 테스트 하는데 다음과 같은 경고가 뜹니다.
미세먼지앱 AirViusal API테스트 Testing started at 오전 8:00 ... C:\flutter\bin\flutter.bat --no-color test --machine --start-paused --plain-name "http 통신 테스트" test\widget_test.dart Warning: You should set `SILENT_OBSERVATORY` to true when debugging the VM as it will output the observatory URL by default. This breaks the various reporter contracts. To set the value define `DART_VM_OPTIONS=-DSILENT_OBSERVATORY=true`. 어디에서 설정을 하라는 얘기인가요? 인터넷도 뒤져보고 있는데 해결을 못했습니다.
- 미해결Flutter 초급 - Http통신, 상태관리
Flutter Kotlin작성중 문제
Android SDK를 잡아줬는데 Android studio 껏다가 다시 켜도 빨간 에러가 뜨네요....
- 해결됨Flutter 초급 - Http통신, 상태관리
runApp() 도 없는데 어떻게 저게 동작하는지 궁금합니다
플러터 강좌 처음으로 유료강좌 등록해서 보고 있는데요. runApp() 에서 부터 시작하는 걸로 아는데.. 저게 어떻게 된건가요?
- 미해결Flutter 초급 - Http통신, 상태관리
안녕하세요. Firebase와 Google sign_in 사용중입니다..
선생님, 안녕하세요. 지금까지의 Flutter 강의 잘 보았습니다. 정말 큰 도움이 됐습니다. 감사합니다. 현재, Firebase로 Firestore, 인증, Firebase사용중입니다. 이슈는 1. 에뮬레이터에서는 Firebase로의 Data를 얻어오지만, - flutter build apk 를 해서 얻은 apk로 제 스마트폰에 설치하였을 때는, 로드가 되지 않습니다. 2. 에뮬레이터로 실행했을 때, Android studio가 여러가지 에러메세지를 보여줍니다. 1. 스크린샷은 아래 링크에 있습니다. https://drive.google.com/drive/folders/1I-B6PyK0msCKc9rbdUzUZ8kSRW4NkinU?usp=sharing https://github.com/KKimj/Let-s-Ink/tree/dev/letsink_dev Flutter Project는 위에 Github에 있습니다. 2- 아래는 에러메세지 입니다. --- Launching lib/main.dart on sdk gphone x86 in debug mode... Running Gradle task 'assembleDebug'... ✓ Built build/app/outputs/flutter-apk/app-debug.apk. Waiting for sdk gphone x86 to report its views... W/etsink.childre(30292): Verification of boolean com.google.android.gms.measurement.internal.zzfu.zzb() took 100.333ms (627.91 bytecodes/s) (1904B approximate peak alloc) I/FA (30292): App measurement initialized, version: 21028 I/FA (30292): To enable debug logging run: adb shell setprop log.tag.FA VERBOSE I/FA (30292): To enable faster debug mode event logging run: I/FA (30292): adb shell setprop debug.firebase.analytics.app com.letsink.children Debug service listening on ws://127.0.0.1:59737/GUJWHriCrs4=/ws Syncing files to device sdk gphone x86... W/etsink.childre(30292): JNI critical lock held for 20.796ms on Thread[22,tid=30325,Runnable,Thread*=0xe4fcb880,peer=0x134051e0,"GoogleApiHandler"] W/etsink.childre(30292): JNI critical lock held for 17.763ms on Thread[20,tid=30316,Runnable,Thread*=0xe4ff36f0,peer=0x13400670,"Measurement Worker"] I/FA (30292): Tag Manager is not found and thus will not be used W/etsink.childre(30292): JNI critical lock held for 32.744ms on Thread[22,tid=30325,Runnable,Thread*=0xe4fcb880,peer=0x134051e0,"GoogleApiHandler"] D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) I/OpenGLRenderer(30292): Davey! duration=5868ms; Flags=1, IntendedVsync=36070958792285, Vsync=36070958792285, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=36070968550750, AnimationStart=36070968932750, PerformTraversalsStart=36070968985750, DrawStart=36076504357750, SyncQueued=36076505935750, SyncStart=36076515188750, IssueDrawCommandsStart=36076521288750, SwapBuffers=36076738009750, FrameCompleted=36076836564750, DequeueBufferDuration=33482000, QueueBufferDuration=8806000, GpuCompleted=0, I/Choreographer(30292): Skipped 351 frames! The application may be doing too much work on its main thread. D/EGL_emulation(30292): eglMakeCurrent: 0xc07c0b00: ver 3 0 (tinfo 0xeaba19f0) I/flutter (30292): rootPage I/flutter (30292): AuthProvider - FirebaseAuth - onAuthStateChanged - FirebaseUser(Instance of 'PlatformUser') D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) D/EGL_emulation(30292): eglMakeCurrent: 0xc07c1430: ver 3 0 (tinfo 0xeab99b30) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->getUnsafe()Lsun/misc/Unsafe; (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->compareAndSwapObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z (greylist, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->compareAndSwapObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z (greylist, linking, allowed) I/BiChannelGoogleApi(30292): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzaq@64f7ca8 D/FirebaseAuth(30292): Notifying id token listeners about user ( Jzx13TmFUpgw7wVSqAjmRWR6sE13 ). I/flutter (30292): signed in 김지운 I/flutter (30292): FirebaseUser(Instance of 'PlatformUser') W/DynamiteModule(30292): Local module descriptor class for providerinstaller not found. I/DynamiteModule(30292): Considering local module providerinstaller:0 and remote module providerinstaller:0 W/ProviderInstaller(30292): Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0. W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->arrayBaseOffset(Ljava/lang/Class;)I (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->copyMemory(JJJ)V (greylist, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->getByte(J)B (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->getByte(Ljava/lang/Object;J)B (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->getLong(J)J (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->putByte(JB)V (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->putByte(Ljava/lang/Object;JB)V (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, reflection, allowed) W/etsink.childre(30292): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, reflection, allowed) W/etsink.childre(30292): Accessing hidden field Ljava/nio/Buffer;->address:J (greylist, reflection, allowed) I/etsink.childre(30292): The ClassLoaderContext is a special shared library. I/flutter (30292): https://firebasestorage.googleapis.com/v0/b/lets-ink-kids.appspot.com/o/test_swiper%2FKakaoTalk_20200404_223302954_01.jpg?alt=media&token=296b5bdf-818f-49ef-89c5-55bdf1ccdaaf I/flutter (30292): https://firebasestorage.googleapis.com/v0/b/lets-ink-kids.appspot.com/o/test_swiper%2FKakaoTalk_20200404_223302954_02.jpg?alt=media&token=66c889a4-54dc-45d1-b50f-79e549b0e038 I/flutter (30292): https://firebasestorage.googleapis.com/v0/b/lets-ink-kids.appspot.com/o/test_swiper%2FKakaoTalk_20200404_223320066.jpg?alt=media&token=b665f1fa-6195-4cb6-b029-802589b2e8a9 I/etsink.childre(30292): The ClassLoaderContext is a special shared library. V/NativeCrypto(30292): Registering com/google/android/gms/org/conscrypt/NativeCrypto's 286 native methods... W/etsink.childre(30292): Accessing hidden method Ljava/security/spec/ECParameterSpec;->getCurveName()Ljava/lang/String; (greylist, reflection, allowed) I/ProviderInstaller(30292): Installed default security provider GmsCore_OpenSSL ════════ Exception caught by widgets library ═══════════════════════════════════════════════════════ The following assertion was thrown while applying parent data.: Incorrect use of ParentDataWidget. The ParentDataWidget Expanded(flex: 1) wants to apply ParentData of type FlexParentData to a RenderObject, which has been set up to accept ParentData of incompatible type ParentData. Usually, this means that the Expanded widget has the wrong ancestor RenderObjectWidget. Typically, Expanded widgets are placed directly inside Flex widgets. The offending Expanded is currently placed inside a RepaintBoundary widget. The ownership chain for the RenderObject that received the incompatible parent data was: ConstrainedBox ← Container ← StreamBuilder<QuerySnapshot> ← Expanded ← ImageSwiper ← RepaintBoundary ← IndexedSemantics ← NotificationListener<KeepAliveNotification> ← KeepAlive ← AutomaticKeepAlive ← ⋯ When the exception was thrown, this was the stack: #0 RenderObjectElement._updateParentData.<anonymous closure> (package:flutter/src/widgets/framework.dart:5649:11) #1 RenderObjectElement._updateParentData (package:flutter/src/widgets/framework.dart:5665:6) #2 RenderObjectElement.attachRenderObject (package:flutter/src/widgets/framework.dart:5686:7) #3 RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5380:5) #4 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5833:11) ... ════════════════════════════════════════════════════════════════════════════════════════════════════ W/etsink.childre(30292): Accessing hidden field Ljava/net/Socket;->impl:Ljava/net/SocketImpl; (greylist, reflection, allowed) W/etsink.childre(30292): Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden field Ljava/io/FileDescriptor;->descriptor:I (greylist, JNI, allowed) W/etsink.childre(30292): Accessing hidden method Ljava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V (greylist, reflection, allowed) W/etsink.childre(30292): Accessing hidden method Ldalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy; (greylist,core-platform-api, linking, allowed) W/etsink.childre(30292): Accessing hidden method Ldalvik/system/BlockGuard$Policy;->onNetwork()V (greylist, linking, allowed) W/etsink.childre(30292): Accessing hidden method Ldalvik/system/CloseGuard;->close()V (greylist,core-platform-api, linking, allowed) 지금까지 해결을 위해 * Firebase 보안 설정 수정, 인증된 사람만 read/write 할 수 있도록 * settings.gradle 수정 - https://stackoverflow.com/questions/61732409/plugin-project-firebase-core-web-not-found * pubspec.yaml 버전 최신으로 수정 이후 남은 시도는 * Firebase 프로젝트 이전. * Flutter code refactoring 으로 생각하고 있습니다. 제 이메일은 ziun79@gmail.com입니다. 필요하신 말씀있으시면, 편하게 연락부탁드립니다! 답변 주신다면 굉장히 감사하겠습니다. 이상입니다. 좋은 하루 보내시고, 건강하세요!
- 미해결Flutter 초급 - Http통신, 상태관리
could not reach cloud firestore backend 에러가 자꾸 발생합니다ㅠㅠ
안녕하세요 선생님 강의 잘 듣고있습니다. 이번 강의에는 포함되지 않은 내용인데 검색해도 뾰족한 방법이 없어서 부득이 질문 드립니다ㅠㅠ 플러터 생존코딩 책에서 Streambuilder와 Firebase를 이용하여 데이터를 실시간으로 받아서 앱에서 출력하는 부분을 작성하고있었습니다. 책에서 나오는 대로 Firebase와 연결을 하고 앱을 실행했는데 자꾸 아래와 같은 메시지가 나옵니다. W/Firestore(11071): (21.3.0) [OnlineStateTracker]: Could not reach Cloud Firestore backend. Connection failed 1 times. Most recent error: Status{code=PERMISSION_DENIED, description=The project was disabled or deleted., cause=null} W/Firestore(11071): This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend. 그래서 혹시몰라서 코드에 snapshot에 데이터가 있을 경우 휴지통을 출력하게 했는데 시간이 좀 걸렸지만 휴지통이 나오더군요ㅠㅠ 집에서 하는거라 인터넷도 연결이 되어있고 이전에는 됐었는데 연습한다고 코드 다시 짰더니 이런 문제가 발생했습니다ㅜㅜ 답변 부탁드리겠습니다.ㅠㅠ
- 미해결Flutter 초급 - Http통신, 상태관리
Weather의 ws 값이 double 형태가 될때가 있네요.
as-is int ws;ws = json['ws'];to-bedouble ws;ws = json['ws'].toDouble(); 파싱하다 오류가 나서, 다음과 같이 해결했네요. 다른 수강생 분들도 참고하시면 좋을거같아요~
- 미해결Flutter 초급 - Http통신, 상태관리
NoSuchMethodError 여러번 반복해서 눌렀을 때 발생
그러면 아래의 에러는 어떻게 처리할까요? double과 int 차이로 인해서 발생하는 문제는 num으로 해당 처리했는데 계속 버튼을 눌러서 여러번 반복을 했더니 http 요청에 문제가 생겼는지.. pollution이 Null이라면서 안됩니다. 더 골때리는 건 stream.hasData = True, stream.hasError = False 이고, try catch로 로딩바를 보여주게 해놨는데 무한 로딩만 되고 아무것도 안됩니다. NoSuchMethodError: The getter 'pollution' was called on null.