Start Debugging

Тег: state-management

9 статей

Перенос StatefulWidget с setState на Notifier из Riverpod во Flutter
Пошаговый переход от локального setState виджета к Notifier из Riverpod 3.x: как разделить состояние, написать Notifier, перейти на ConsumerWidget и пережить фильтрацию по ==, повторный вызов build() и разные значения autoDispose по умолчанию. Проверено на Flutter 3.44, Dart 3.x и flutter_riverpod 3.3.2.
2026-07-21 flutterdartriverpod
Исправление: StreamProvider в Riverpod 3.0 перестаёт эмитить, потому что обновления фильтруются по ==
В Riverpod 3.0 каждый провайдер фильтрует уведомления слушателей по ==, а не по идентичности. StreamProvider, который повторно эмитит один и тот же изменяемый объект, перестаёт перестраивать UI после первого кадра. Здесь разбирается, почему так происходит, и три способа исправить это. Проверено на flutter_riverpod 3.3.2, Flutter 3.44, Dart 3.x.
Переход с 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.
2026-07-06 errorsflutterdart
Исправление: Riverpod 3.0 бросает ProviderException вместо исходной ошибки
Riverpod 3.0 оборачивает ошибки, брошенные при чтении провайдера, в ProviderException. Поймайте этот тип и прочитайте e.exception, чтобы получить исходную ошибку обратно, или используйте AsyncValue.error, который не обёрнут.
2026-07-04 flutterdartriverpod
Как проверять Ref.mounted после асинхронного разрыва во Flutter Riverpod 3
В Notifier сначала получите зависимости до await, а затем защитите запись в state с помощью if (!ref.mounted) return. Это замена в Riverpod 3.0 для старого миксина с onDispose, которая предотвращает UnmountedRefException, когда provider уничтожается посреди await. Проверено на flutter_riverpod 3.x, Flutter 3.44, Dart 3.x.
2026-06-16 flutterdartriverpod
Миграция с provider на Riverpod во Flutter (provider 6.1.5 на Riverpod 3.x)
Пошаговая миграция с пакета provider на Riverpod 3.x в реальном приложении Flutter: ChangeNotifierProvider на Notifier, MultiProvider на ProviderScope, context.watch на ref.watch, ProxyProvider на композицию через ref.watch, плюс подводные камни с равенством и жизненным циклом. Проверено на Flutter 3.27.1, Dart 3.11, provider 6.1.5, flutter_riverpod 3.3.1.
2026-06-02 flutterdartriverpod
Как показать состояния загрузки и ошибки с AsyncValue в Flutter Riverpod
Отображайте состояния загрузки, данных и ошибки из единственного AsyncValue в Riverpod 3. Используйте AsyncNotifier и AsyncValue.guard для мутаций, .when() и сопоставление с образцом через switch для UI, сохраняйте предыдущие данные при обновлении и мигрируйте устаревший паттерн StateNotifier. Проверено на flutter_riverpod 3.x, Flutter 3.44, Dart 3.x.