Size: a a a

Dart & Flutter по-русски

2020 April 10

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Тобишь былоб здорово избавится от skip подправив условия в where
источник

SS

Sergey Salnikov in Dart & Flutter по-русски
🅵🅾️🆇
После skip
я потнял, но как раз firstWhere not Loading сам себя объясняет вот почему )
источник

PK

Pavel Kozlovskiy in Dart & Flutter по-русски
Sergey Salnikov
я сделал так
onRefresh: () {
                   // ignore: close_sinks
                   final BookBloc bloc = context.bloc();
                   bloc.add(Refresh());
                   return bloc
                       .skip(1)
                       .firstWhere((state) => state is! Loading);
                 },
Здорово, работает, а можно ещё как то оставлять на экране те данные которые есть...
источник

SS

Sergey Salnikov in Dart & Flutter по-русски
🅵🅾️🆇
Тобишь былоб здорово избавится от skip подправив условия в where
согласен можно покумекать
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Sergey Salnikov
я потнял, но как раз firstWhere not Loading сам себя объясняет вот почему )
Ну вот былоб здорово расширить firstWhere
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Добавив там еще 1 условие на стейт
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Который ты также хочешь избегать после эвента
источник

SS

Sergey Salnikov in Dart & Flutter по-русски
🅵🅾️🆇
Ну вот былоб здорово расширить firstWhere
не, не выйдет
нужно тогда знать предыдущий стейт
источник

PK

Pavel Kozlovskiy in Dart & Flutter по-русски
источник

SS

Sergey Salnikov in Dart & Flutter по-русски
🅵🅾️🆇
Который ты также хочешь избегать после эвента
например ошибка
придётся раздувать where
а так можно int skipCurrent =1
и не будет магических цифр
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
А, я понял, ты таким макаром избегаешь поведения BehaviorSubject коим является поток состояний.
Тебе нужен как раз ванильный StreamController.broadcast aka PublishSubject
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Тобишь отсеиваешь состояние на момент подписки.
источник

SS

Sergey Salnikov in Dart & Flutter по-русски
🅵🅾️🆇
А, я понял, ты таким макаром избегаешь поведения BehaviorSubject коим является поток состояний.
Тебе нужен как раз ванильный StreamController.broadcast aka PublishSubject
это валидно для нового потока, а в блоке поток стейтов один

можно сделать метод блока skipCurrent

или future until not loading
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Только тут ты не получишь другую багу?
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Тобишь смотри, когда подписываешься на свежесозданый блок - первого состояния не будет и ты пропускаешь следующее состояние вызваное твоим эвентом.

Если подпишешься на уже существующий - получишь как раз вот это последнее состояние у предидущего эвента.
источник

SS

Sergey Salnikov in Dart & Flutter по-русски
🅵🅾️🆇
Тобишь смотри, когда подписываешься на свежесозданый блок - первого состояния не будет и ты пропускаешь следующее состояние вызваное твоим эвентом.

Если подпишешься на уже существующий - получишь как раз вот это последнее состояние у предидущего эвента.
в блоке всегда есть состояние - он же Behave Subj
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Sergey Salnikov
в блоке всегда есть состояние - он же Behave Subj
А, точно, там initialState
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Понял, резонно
источник

SS

Sergey Salnikov in Dart & Flutter по-русски
🅵🅾️🆇
А, точно, там initialState
поэтому читабельнее
в блоке сделать
Future waitUntilNotLoading и скрыть там весь rx
источник