Есть ли способ получить доступ к полю из состояния StatefulWidget?

#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())  }