일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dart new
- flutter statefulwidget
- riot api dart
- valorant api dart
- Architectural overview
- flutter android 폴더
- com.google.GIDSignIn
- dart new 키워드
- flutter bloc
- flutter ios 폴더
- generate parentheses dart
- leetcode dart
- dart
- 파이썬
- tft api dart
- lol api dart
- 파이썬 부동소수점
- 발로란트 api dart
- swift 동시성
- flutter
- 롤토체스 api dart
- 롤 api dart
- docker overview
- flutter widget
- widget
- PlatformException(sign_in_failed
- swift concurrency
- dart.dev
- AnimationController
- keychain error
- Today
- Total
Coaspe
Flutter - InheritedWidget 본문
트리에서 자식들에게 효율적으로 정보를 전달할 수 있게 해주는 위젯입니다.
build context에서 inherited widget의 특정 타입의 가장 가까운 인스턴스를 얻고 싶다면, BuildContext.dependOnInheritedWidgetOfExactType를 사용하세요.
Inherited widgets이 이런식으로 참조 될 때, 해당 위젯의 상태가 바뀌면 그것을 참조하는 consumer들은 rebuild 해아합니다.
다음은 FrogColor라는 inherited widget의 뼈대입니다.
Implementing the of method
관습적으로 InheritedWidget는 BuildContext.dependOnInheritedWidgetOfExactType을 호출하는 static 메소드를 제공합니다. 이 메소드는 해당 타입의 위젯이 스코프 안에 없을 때, fallback 로직을 정의할 수 있게 해줍니다. 위의 코드를 예로, 이 경우 반환된 값은 null이지만 기본값으로 설정될 수도 있습니다.
때때로, of 메소드는 inherited widget이 아닌 데이터를 반환 합니다. 예를 들면, 위의 예로 FrogColor 위젯이 아닌, Color를 반환할 수 있습니다.
경우에 따라, inherited widget은 다른 클래스 구현의 세부사항일 수 있고 그러므로 private 입니다. of 메소드는 그런 경우에 public class에 적용됩니다. 예를 들면, Theme은 private inherited widget을 빌드하는 StatelessWidget로 구현됩니다.(StatelessWidget 안에 of 메소드가 있는 구조) Theme.of이 BuildContext.dependOnInheritedWidgetOfExactType을 사용하여 inherited widget을 탐색하고, ThemeData를 반환합니다.
Calling the of method
of 메소드를 사용할 때, context는 InheritedWidget의 후손이어야합니다. 그리고 이것은 트리 안에서 InheritedWidget 보다 "밑에" 있어야 한다는 뜻입니다.
다음 코드에서, context는 FrogColor 위젯의 자식인 Builder에서 사용되므로, 정상 작동합니다.
다음 코드에서, context는 FrogColor 위젯의 부모인 MyOtherPage 위젯에서 사용되므로, 정상 작동하지 않습니다.
See also:
- StatefulWidget and State, for widgets that can build differently several times over their lifetime.
- StatelessWidget, for widgets that always build the same way given a particular configuration and ambient state.
- Widget, for an overview of widgets in general.
- InheritedNotifier, an inherited widget whose value can be a Listenable, and which will notify dependents whenever the value sends notifications.
- InheritedModel, an inherited widget that allows clients to subscribe to changes for subparts of the value.
상속 구조
- InheritedWidget
생성자
InheritedWidget({Key? key, required Widget child})
추상 const 생성자.
'Flutter > API' 카테고리의 다른 글
Flutter - Tween<T extends Object?> (0) | 2023.02.17 |
---|---|
Flutter - RestorationMixin<S extends StatefulWidget> (0) | 2023.02.17 |
Flutter - StatefulWidget (0) | 2023.02.17 |
Flutter - Object (0) | 2023.02.17 |
Flutter - DiagnosticsNode (0) | 2023.02.17 |