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

Константные виджеты const в Flutter

Объект, известный на этапе компиляции, можно пометить const. Для виджета нужны const-конструктор класса и константные аргументы при вызове. Тогда Flutter переиспользует один экземпляр и реже пересобирает дерево:

class Hint extends StatelessWidget { const Hint({super.key}); @override Widget build(BuildContext context) { return const Text('Hint'); } }

Вызов const Hint() и const Text('…') внутри build допустимы, потому что строка и виджет без параметров - константы.

Метку const нельзя ставить, если аргумент вычисляют в runtime. Например, значение из переменной или результат функции не является compile-time constant:

var title = 'Screen'; // const Text(title); // compile error Text(title); // this is valid

Сделайте виджет EmptyState с const-конструктором:

class EmptyState extends StatelessWidget { const EmptyState({super.key}); @override Widget build(BuildContext context) { return const Text('No data'); } }

На экран поместите такой фрагмент:

var message = 'Hello'; Column( children: [ const EmptyState(), const Text(message), // compile error Text(message), // this is valid ], )

Строка с комментарием compile error должна подсветиться как ошибка. Уберите у неё const - ошибка пропадает.

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