일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 플러터
- exception caught by image resource service
- providernotfoundexception
- buildcontext
- appstore connect guideline
- appstroe connect guideline
- infinity or nan toint
- tflite_flutter
- app completeness
- Flutter
- dart sdk version upgrade
- flutter_secure_storage
- .dio
- information needed
- guideline 1.5
- flutter_dotenv
- GetX
- flutter doctor -v
- withopacity
- pub.dev
- 채팅 메시지 정렬
- guideline 4.3(a)
- exception
- undefined name
- AI
- app stroe connect guideline
- youtube_player_flutter
- 에러
- permissiondeniedexception
- app store connect guideline
Archives
- Today
- Total
min_chan님의 블로그
[Flutter] - You need to call "Get.put(MyController())" or "Get.lazyPut(()=>MyController())" 본문
Flutter
[Flutter] - You need to call "Get.put(MyController())" or "Get.lazyPut(()=>MyController())"
min_chan 2025. 1. 24. 09:00
1. 문제
- 오..오..오...늘 GetX를 사용하던 중 제목과 같은 에러가 발생하였다. stack overflow를 찾아본 결과 페이지 이동 시 컨트롤러가 dispose된 문제라고 생각했다.
2. 해결 방법
#1 - lazyPut을 fenix: true와 함께 사용하여 dispose된 후에도 컨트롤러 복원 가능
Get.lazyPut(() => MyController(), fenix: true);
#2 - SchedulerBinding.instance.addPostFrameCallback을 사용하여 현재 프레임이 렌더링된 후에 특정 작업을 수행하도록 만들어준다.
@override
void initState() {
super.initState();
SchedulerBinding.instance.addPostFrameCallback((_) {
Get.put(MyController());
});
}
해결 방법이 더 많겠지만 내가 찾은 2번으로 문제를 해결했다 ^^*
'Flutter' 카테고리의 다른 글
[Flutter] - null safety (0) | 2025.02.03 |
---|---|
[Flutter] - TypeError: app.get is not a function (0) | 2025.01.31 |
[Flutter] - Unknown flutter tag. Abandoning upgrade to avoid destroying local changes. (0) | 2025.01.23 |
[Flutter] - Unable to find bundled Java version (2) | 2025.01.22 |
[Flutter] - API 호출 최적화 Throttle (0) | 2025.01.21 |