Start Debugging

Тег: riverpod

13 статей · Страница1из2

Перенос 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.
Миграция с FutureBuilder на Riverpod AsyncNotifier во Flutter (flutter_riverpod 3.3.2)
Пошаговая миграция со встроенного виджета FutureBuilder на Riverpod AsyncNotifier в реальном приложении Flutter: вынесите асинхронную работу из build, представьте её как провайдер, выполняйте отрисовку через .when() или сопоставление с образцом switch и добавьте методы обновления и мутации. Проверено на Flutter 3.44, Dart 3.x, flutter_riverpod 3.3.2.
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.
FutureBuilder/StreamBuilder против AsyncValue из Riverpod во Flutter: что выбрать?
Используйте FutureBuilder или StreamBuilder для самодостаточного, одноразового асинхронного виджета. Переходите на AsyncValue из Riverpod, как только результат становится общим, кешируется или мутирует. Здесь решение, подводные камни и исполняемый код для обоих. Проверено на Flutter 3.44 и flutter_riverpod 3.3.1.
Вперёд