Size: a a a

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

2020 April 06

🅵

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

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
roman G
хм, ну вот к примеру приходит event из page, как ты после этого пробрасываешь состояние загрузки данных?
Что-то типа этого?  
yield stateStartLoad();
await api.loadData();
yield stateFinishLoad();
HttpProvider httpProvider;

State<State> mapEventToState(Event event)  async* {
 if (event is RightEvent) yield* rightEventHook(event);
}

State<RightState> rightEventHook(RightEvent event) async* {
 yield Fetching();
 await httpProvider.do();
 yield Ok();
}
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Как то так, если на пальцах
источник

r

roman G in Dart & Flutter по-русски
а вот к примеру если тебе нужно сделать на экране одновременно 2 запроса к сети, то получается путаница
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
roman G
а вот к примеру если тебе нужно сделать на экране одновременно 2 запроса к сети, то получается путаница
Сам блок не даст сделать одновременно
источник

КБ

Константин Буланов in Dart & Flutter по-русски
Коллеги круглый контейнер создается через BoxDecoration и его свойства borderRadius? Что то запутался. Или есть отдельное решение для этого?
источник

r

roman G in Dart & Flutter по-русски
или просто, если много запросов на одном экране,  то получается много разных евентов загрузки
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Константин Буланов
Коллеги круглый контейнер создается через BoxDecoration и его свойства borderRadius? Что то запутался. Или есть отдельное решение для этого?
Тип того, тама несколько способов, включая TrimPath (или как то так)
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
roman G
или просто, если много запросов на одном экране,  то получается много разных евентов загрузки
И?
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Разные события порождают разные состояния
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
В чем проблема то?
источник

КБ

Константин Буланов in Dart & Flutter по-русски
🅵🅾️🆇
Тип того, тама несколько способов, включая TrimPath (или как то так)
Спасибо. Как раз помню что с trim было.
источник

r

roman G in Dart & Flutter по-русски
🅵🅾️🆇
В чем проблема то?
хз, мне показалось что много состояний неудобно менеджить
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
roman G
хз, мне показалось что много состояний неудобно менеджить
Что там не удобного?
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
myBloc
.whereType<RightState>()
.forEach((RightState myState) => ...);


Куда еще проще и удобнее?)
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Для красоты в самом блоке у меня геттер:

 Stream<T> whereState<T>() =>
   whereType<T>();
источник

r

roman G in Dart & Flutter по-русски
🅵🅾️🆇
myBloc
.whereType<RightState>()
.forEach((RightState myState) => ...);


Куда еще проще и удобнее?)
а можно поподробнее для чего это?
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
roman G
а можно поподробнее для чего это?
Ну вот у меня есть такие стейты, к примеру:

///
mixin AuthorizedState {}

///
class Authorized extends AppState with AuthorizedState, AppRoutingState {
 final User user;
 const Authorized(this.user)
   : assert(user is User);
}

///
class NotAuthorized extends AppState with AuthorizedState, AppRoutingState {
 final bool showAuthScreen;
 const NotAuthorized({bool showAuthScreen = false})
   : showAuthScreen = showAuthScreen ?? false;
}
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Мне надо на каждую смену авторизации что то там перерисовывать, что я делаю?

StreamBuilder(
 stream: myBloc.whereState<AuthorizedState>(),
 builder: ...
)
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Куда уж проще?)
источник