Рецепты
Однократные эффекты Flutter
Реагируйте на новые Snapshot без повторной навигации или повторных сообщений при подписке.
v0.1.0-dev.1Средний уровеньusecase_forge_flutter
Однократные эффекты Flutter
Отображение и побочные эффекты отвечают за разные задачи. Оставьте видимое состояние в Builder или Selector, а для навигации, диалогов, уведомлений и аналитики используйте UseCaseListener.
dart
UseCaseListener<LoginUseCase, LoginState>(
listenWhen: (previous, current) =>
previous.state.session != current.state.session,
listener: (context, snapshot) {
if (snapshot.state.session != null) {
Navigator.of(context).pop();
}
},
child: const LoginForm(),
)
UseCaseListener пропускает Snapshot, воспроизведённый при подписке, поэтому открытие экрана не повторяет старый эффект. Используйте UseCaseConsumer, когда одна подписка должна и строить интерфейс, и слушать события; его фильтры остаются независимыми.
Обработчик onError потока принимает ошибки из потока Snapshot, но не заменяет обработку ошибок Command в основном пакете.