#flutter #dart
#трепетать #дротик
Вопрос:
У меня есть поле, которое изменяется в состоянии StatefulWidget, но я хочу получить доступ к нему в самом виджете.
class HomeScreen extends StatefulWidget { const HomeScreen({Key? key}) : super(key: key); @override Statelt;HomeScreengt; createState() =gt; _HomeScreenState(); } class _HomeScreenState extends Statelt;HomeScreengt; { @override Widget build(BuildContext context) { return Training(); } }
class Training extends StatefulWidget { const Training({Key? key}) : super(key: key); String trainingToString(){ return('people selected: ' //Here I would need to access the variable from _TrainingState); } @override Statelt;Traininggt; createState() =gt; _TrainingState(); } class _TrainingState extends Statelt;Traininggt; { int peopleSelected = 0; void updatePeopleSelected(int peopleSelected){ setState((){ this.peopleSelected = peopleSelected; } } @override Widget build(BuildContext context) { return Container(); } }
Поэтому у меня есть выбранное поле «Люди» и функция для его обновления в _TrainingState и при вызове функции Training.trainingToString (). Я хочу, чтобы он напечатал это поле, но я не могу получить доступ к полю с помощью обучения.
Есть ли способ, которым вы можете это сделать, или какие могут быть альтернативы?
Ответ №1:
вы должны вызвать эту функцию, которую вы можете использовать только сейчас
Widget build(BuildContext context) { return GestureDetector( onTap: (){updatePeopleSelected()} child: Container()) }