Вступить в клуб →
лёгкаявопросFlutter и Dart: виджеты, рендер и асинхронность

Экран профиля шлёт запрос к API на каждый введённый в поиск символ

class _ProfilePageState extends State<ProfilePage> {
  @override
  Widget build(BuildContext context) {
    return FutureBuilder<Profile>(
      future: api.loadProfile(),
      builder: (context, snap) => ProfileView(snap.data),
    );
  }
}

На экране есть поле поиска, которое вызывает setState. В логах сервера — запрос /profile на каждое нажатие клавиши, а экран мигает индикатором загрузки. Как исправить?

  • Создать Future один раз в initState и хранить в поле
  • Заменить FutureBuilder на StreamBuilder
  • Пометить FutureBuilder модификатором const
  • Вызывать loadProfile внутри builder

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела