Выполнение initstate для каждого экземпляра

в моем приложении у меня есть панель навигации, и тело обновляется в соответствии с плиткой, нажатой в ящике. Тело одинаково для каждого класса, это виджет с отслеживанием состояния и возвращает представление списка. Для каждого экземпляра этого класса (и, следовательно, для каждой плитки) мне нужно вызвать метод initState. Я заметил, что он вызывается только для первого экземпляра первой плитки, а затем вызывает только метод сборки. Как я могу запустить фрагмент кода в первый раз для каждого экземпляра?

Синтез: в приложении есть ящик с множеством плиток, каждая плитка связана с экземпляром класса, который является телом приложения. Но initState вызывается только в первом экземпляре.

Вот пример:

class FirstPage extends StatefulWidget {
  @override
  _FirstPage createState() => new _FirstPage();
}

class _FirstPage extends State<FirstPage> {
  @override
  void initState() {
    super.initState();
    print("debug");
  }
  @override
  Widget build(BuildContext context) {
    print('hi');
    return ListView(children: <Widget>[Text('text')],
    );
  }
}

Если я создам экземпляр этого класса в первый раз, когда он напечатает: debug и hi. Во второй раз, когда я создаю этот экземпляр, он печатает просто: привет

1
0
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете. Весь смысл initState в том, чтобы вызывать один раз при инициализации состояния.

Вы можете посмотреть на другие жизненные циклы. Такие как

Другие вопросы по теме