Start Debugging

Тег: flutter

84 статей · Страница2из9

2026-07-21 flutterdartriverpod
Исправление: StreamProvider в Riverpod 3.0 перестаёт эмитить, потому что обновления фильтруются по ==
В Riverpod 3.0 каждый провайдер фильтрует уведомления слушателей по ==, а не по идентичности. StreamProvider, который повторно эмитит один и тот же изменяемый объект, перестаёт перестраивать UI после первого кадра. Здесь разбирается, почему так происходит, и три способа исправить это. Проверено на flutter_riverpod 3.3.2, Flutter 3.44, Dart 3.x.
Как добавить анимацию Hero между двумя экранами в Flutter
Оберните один и тот же виджет на обеих маршрутах в Hero с идентичным tag, и Flutter анимирует его положение и размер во время навигации. Полное руководство: изображения, flightShuttleBuilder, createRectTween, дуги RectTween, переходы по жесту и коллизии tag, которые всё ломают. Проверено на Flutter 3.44, Dart 3.12.
2026-07-13 flutterdartasync
Как отменить StreamSubscription в dispose, чтобы избежать сбоя setState-после-dispose во Flutter
Stream продолжает эмитить события после того, как пользователь покинул экран, его onData вызывает setState на уже уничтоженном State, и Flutter выбрасывает исключение. Сохраните подписку, отмените её в dispose перед super.dispose, и колбэк уже никогда не сработает на мёртвом виджете. Полный паттерн для Flutter 3.44.
2026-07-13 flutterdartasync
Как защитить setState проверкой mounted после асинхронного разрыва во Flutter
После await виджет может быть уже уничтожен, и вызов setState бросает исключение. Защитите возобновление через if (!mounted) return; и, что лучше, отмените работу, которая его запускает. Полный паттерн для Flutter 3.44.
Переход с Riverpod 2.x на Riverpod 3.0 во Flutter
Пошаговое обновление с flutter_riverpod 2.x до 3.x: поднимите версии пакетов, перенесите StateProvider и его собратьев в legacy-импорт, откажитесь от ref-типов AutoDispose и Family, обработайте оборачивание в ProviderException и автоматический повтор, а также исправьте фильтрацию уведомлений по ==, которая молча теряет события StreamProvider. Проверено на Flutter 3.44, Dart 3.x, flutter_riverpod 3.3.2.
go_router против auto_route против Navigator 2.0 во Flutter
go_router и auto_route оба работают поверх Navigator 2.0, поэтому реальный выбор -- это декларативная маршрутизация по URL против типизированных маршрутов на основе кодогенерации против ручной реализации Router API. Матрица решения с конфигурацией для каждого варианта и случаи, когда чистый Navigator всё ещё выигрывает.
Назад Вперёд