일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 유니티
- 깃
- gitlab
- Data Structure
- vim
- c언어
- 포인터
- c#
- dart 언어
- C++
- HTML
- c# 윈폼
- C# delegate
- jupyter lab
- 다트 언어
- c# winform
- 구조체
- github
- C언어 포인터
- Houdini
- c# 추상 클래스
- jupyter
- 플러터
- git
- Algorithm
- Flutter
- Unity
- docker
- 도커
- Python
Archives
- Today
- Total
nomad-programmer
[Flutter] StatefulWidget 클래스 사용 시점 본문
StatelessWidget 클래스에 TextFormField를 사용해도될까?
TextEditingController는 렌더링간에 유지되어야하는 클래스 인스턴스이다. 그러나 StatelessWidget 클래스에 정의하면 기본적으로 모든 업데이트 후 다시 만든다. 그러므로 TextFormField 클래스를 사용할 예정이면 StatefulWidget 클래스로 만들어야 한다.
Flutter 공식문서에서도 TextFormField 클래스를 생성할 때면 StatefulWidget으로 생성하라고 나와있다.
flutter.dev/docs/cookbook/forms/text-field-changes
StatelessWidget은 정적인 화면. 즉 아무것도 변경되지 않는 소개 페이지나 사진, 그림 등 정적인 렌더링에 사용하는 클래스이다. 그래서 앱 종료 시 호출하는 dispose 클래스를 사용할 수 없다. 또한 rebuild 될 때 마다 상태(state)가 손실된다.
앱이 Rebuild 되어도 상태를 유지해야하거나 동적인 화면을 렌더링할 때에는 StatefulWidget 클래스를 사용하면 된다.
정리
- Rebuild가 되어도 상태값을 유지하려면 StatefulWidget 클래스를 사용한다.
- dispose() 메소드에 적고 싶은 코드가 있다는 것 자체가 StatefulWidget을 써야한다는 증거이다.
- TextEditingController는 렌더링간에 유지되어야 하는 인스턴스이다. 그런 변수를 매번 다시 만들지 않게끔 상태(state)를 관리해주는 StatefulWidget을 사용해야 한다.
- StatelessWidget은 Rebuild할 때 상태(state) 값이 손실된다.
'Programming > Flutter' 카테고리의 다른 글
[Programming/Flutter] CustomPainter를 이용한 차트(그래프) (0) | 2020.10.22 |
---|---|
[Dart] Unit Test (유닛 테스트) (0) | 2020.10.22 |
[Flutter] Reactive Programming (0) | 2020.10.17 |
[Flutter] 성능 개선을 위한 작은 실천 (0) | 2020.10.15 |
[Programming/Flutter] AppBar에 Gradient Color 적용 (0) | 2020.10.13 |
Comments