Junior — Middle
Flutter-да InheritedWidget қолданудың мысалын келтіре аласыз ба?
sobes.tech AI
AI-дан жауап
InheritedWidget Flutter-да деректерді ағаш бойымен төмен жіберу үшін пайдаланылады, оны әрбір ұрпақ виджетінінің конструкторларында айқын түрде беру қажеттілігінсіз.
Қолдану мысалы: тақырып немесе баптауларды жасау, олар көп виджеттерге қол жетімді болуы керек.
Қарапайым мысал — баптау түсімен жолды беру:
class MySettings extends InheritedWidget {
final Color color;
const MySettings({
Key? key,
required this.color,
required Widget child,
}) : super(key: key, child: child);
static MySettings? of(BuildContext context) {
return context.dependOnInheritedWidgetOfExactType<MySettings>();
}
@override
bool updateShouldNotify(MySettings oldWidget) => color != oldWidget.color;
}
// Қолдану:
class ColoredText extends StatelessWidget {
@override
Widget build(BuildContext context) {
final settings = MySettings.of(context);
return Text(
'Сәлем, Flutter!',
style: TextStyle(color: settings?.color ?? Colors.black),
);
}
}
Осылайша, MySettings ішіндегі барлық виджеттер түсіне қол жеткізе алады, параметрлерді қолмен беру қажеттілігінсіз.