Зачем нужно состояние в Flutter
В разделах про списки и нажатия мы собирали
StatelessWidget:
данные задавались один раз, а обработчики
лишь вызывали debugPrint. Пользователь
нажимает кнопку - в консоли появляется
строка, но подпись на экране и счётчик
остаются прежними.
Так устроен StatelessWidget: метод
build описывает интерфейс из
переданных параметров и констант. Внутри
класса нет места, куда безопасно записать
«текущее число» или «открыта ли панель»
и затем перерисовать дерево. Flutter не
знает, что экран должен измениться, если
вы просто меняете локальную переменную
в обработчике.
Интерактивный экран хранит состояние -
значения, которые меняются от действий
пользователя или таймера. Когда состояние
обновляют правильно, фреймворк снова
вызывает build и подставляет новые
данные в Text,
кнопки и списки. В следующих уроках
раздела мы познакомимся с парой
StatefulWidget
и State,
методом setState и приёмами,
когда состояние живёт у родителя.
В уроке про ElevatedButton нажатие только писало строку в консоль. Подпись на экране при этом не менялась. Этот раздел как раз закрывает этот разрыв.
Рядом с ElevatedButton выведите
Text с числом 0. По нажатию
вызывайте только debugPrint.
Несколько нажатий пишут строки в
консоль, а число на экране остаётся
нулём.