Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗flPmStInr 61 of 125 menu
◀ ▶

Зачем нужно состояние в Flutter

В разделах про списки и нажатия мы собирали StatelessWidget: данные задавались один раз, а обработчики лишь вызывали debugPrint. Пользователь нажимает кнопку - в консоли появляется строка, но подпись на экране и счётчик остаются прежними.

Так устроен StatelessWidget: метод build описывает интерфейс из переданных параметров и констант. Внутри класса нет места, куда безопасно записать «текущее число» или «открыта ли панель» и затем перерисовать дерево. Flutter не знает, что экран должен измениться, если вы просто меняете локальную переменную в обработчике.

Интерактивный экран хранит состояние - значения, которые меняются от действий пользователя или таймера. Когда состояние обновляют правильно, фреймворк снова вызывает build и подставляет новые данные в Text, кнопки и списки. В следующих уроках раздела мы познакомимся с парой StatefulWidget и State, методом setState и приёмами, когда состояние живёт у родителя.

В уроке про ElevatedButton нажатие только писало строку в консоль. Подпись на экране при этом не менялась. Этот раздел как раз закрывает этот разрыв.

Рядом с ElevatedButton выведите Text с числом 0. По нажатию вызывайте только debugPrint. Несколько нажатий пишут строки в консоль, а число на экране остаётся нулём.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить