Рецепты

Однократные эффекты 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 в основном пакете.

ARKTELOS

Инженерные системы для программного обеспечения, которое обязано выдерживать нагрузку.