티스토리 뷰
Getx 그 중에서도 Obs, Obx 사용법에 대해서 정리
참고자료: Getx의 statemanagement 에 대한 문서
https://github.com/jonataslaw/getx/blob/master/documentation/en_US/state_management.md
GitHub - jonataslaw/getx: Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies eas
Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get. - GitHub - jonataslaw/getx: Open screens/snackbars/dialogs/bottomSheets without c...
github.com
the improper use of a GetX has been detected.
이 에러 메세지 해결하느라 3일을 소모했다.....
분명히 GetXController에 있는 RxList<T> 타입의 변수 내에 값은 변경이 되는데, Obx로 감싸준 widget의 내용은 왜 바뀌지 않는지 이유를 몰라 그걸 찾느라 시간이 많이 소모 되었다.
RxList<T> 형태의 경우, List에 새로운 값을 입력하여 값이 변화가 생길 경우, refresh() 를 호출해서 RxList 값이 갱신되었다는 것을 알려줘야 했다.
RxList가 아닌 RxInt나 RxString은 그냥 value 가 변경되면 자동으로 인지하고 해당 value를 refer하는 widget을 update하 였다 (그 widget이 Obx로 감싸져 있을 경우).
그리고 initialize할 때 선언한 obs 변수에 대해서 값을 갱신할 때는, 새로운 obs 변수를 선언해서 대입해서는 안된다. 그러면 기존의 obs를 선언한 변수가 변화했다고 인지하지 않고, 새로운 obs변수가 선언되었다고 인식하는 것 같다. (그래서 리스트의 경우 변수 대입 후 .refresh()를 호출해도 반응이 없었다.)
아래는 내가 실수한 예시이다.
RxList 타입의 obs 변수를 선언하고 초기화하였다면 이후에는 그 변수의 내부 값을 변경해야지, 위의 코드처럼 새로운 obs변수를 생성해서 입력하면 안된다.
'Dart & Flutter > Widget & Package' 카테고리의 다른 글
iOS 와 안드로이드에서의 파일 저장 위치 (0) | 2023.02.08 |
---|---|
month의 week number를 계산하는 extention (0) | 2022.08.09 |
CustomPaint, CustomPainter, Painter, canvas (0) | 2021.07.14 |
addPostFrameCallback (0) | 2021.07.13 |
Wall Layout package (0) | 2021.05.20 |
- Total
- Today
- Yesterday
- hide
- addPostFrameCallback
- Chrome
- 앱
- Syncfusion
- DART
- 인사이트
- UI
- 디자인
- Bluetooth
- 한빛미디어
- 앱 프로그래밍
- Flutter
- 이미지
- UX
- plugin
- error
- 크롬
- 앱개발
- SizedBox
- firebase
- 다트
- TextFormField
- IOS
- BLE
- position
- TextField
- 문제 해결
- 플러터
- 에러
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |