Size: a a a

Flutter Developers — русскоговорящее сообщество

2021 March 25

PS

Pavel Shilyagov in Flutter Developers — русскоговорящее сообщество
Альберт
Подскажите как посылать из bloc одно и то же состояние, чтоб виджет обновлялся? copywith не помогает, данные новые, но на экране старые данные. Если чередовать состояния данные обновляются, но это думаю не выход.
если состояние точно такое же как предыдущее то зачем перерисовывать?
источник

А

Альберт in Flutter Developers — русскоговорящее сообщество
Pavel Shilyagov
если состояние точно такое же как предыдущее то зачем перерисовывать?
счётчик изменяю
источник

PS

Pavel Shilyagov in Flutter Developers — русскоговорящее сообщество
так значит состояние изменилось, значит должно все отработать
источник

А

Альберт in Flutter Developers — русскоговорящее сообщество
Pavel Shilyagov
так значит состояние изменилось, значит должно все отработать
Вроде как да, в виджете в консоль вывожу данные новые, но сам он не перерисовывается.
источник
2021 March 26

EA

Erkin Avlyakuliyev in Flutter Developers — русскоговорящее сообщество
Ребят привет такой вопрос, как затестить содержимое showBottomModalSheet?

Т.е. делаю тап на GestureDetector:

await tester.tap(find.byKey(Key('sort-button')));
await tester.pump();
await tester.pumpAndSettle();

Ищу текст оттуда, но не находит:

expect(find.text('Сортировать'), findsOneWidget);

Кто-нибудь пробовал тестить модалки?
источник

SH

Sergey Hottabych in Flutter Developers — русскоговорящее сообщество
Эмиль
Ребята, такой вопрос

Иерархия:
Stack>PageBuilder, Container(SingleChild)

Синглчайду задаю паддинг, и контейнер работает, поднимается до самого верха, но PageBuilder становится перекрытым и не реагирует, как можно его оживить?

Так же делал отступ через Positioned, PageBuilder работает, но тогда контейнер становится фиксированным и не выезжает до верха

Как заставить работать и то и то, подскажите, пожалуйста
Есть подозрение, что Stack тебе не нужен. Копай в сторону сливеров.
источник

SH

Sergey Hottabych in Flutter Developers — русскоговорящее сообщество
Альберт
Подскажите как посылать из bloc одно и то же состояние, чтоб виджет обновлялся? copywith не помогает, данные новые, но на экране старые данные. Если чередовать состояния данные обновляются, но это думаю не выход.
Насколько я знаю, блок требует пересоздавать модели. Он сравнивает старый объект с новым.
То есть, нельзя сделать user.age++, нужно сделать user = User(age: oldAge+1), иначе не ребилднется.
источник

D

Dagba  in Flutter Developers — русскоговорящее сообщество
Альберт
Подскажите как посылать из bloc одно и то же состояние, чтоб виджет обновлялся? copywith не помогает, данные новые, но на экране старые данные. Если чередовать состояния данные обновляются, но это думаю не выход.
distinct убрать
источник

А

Альберт in Flutter Developers — русскоговорящее сообщество
Sergey Hottabych
Насколько я знаю, блок требует пересоздавать модели. Он сравнивает старый объект с новым.
То есть, нельзя сделать user.age++, нужно сделать user = User(age: oldAge+1), иначе не ребилднется.
Примерно так и делаю, каждый раз создаётся новый инстанс, но инстанс этого же класса и не обновляется
источник

А

Альберт in Flutter Developers — русскоговорящее сообщество
Dagba 
distinct убрать
Не понял, можно поподробнее?
источник

D

Dagba  in Flutter Developers — русскоговорящее сообщество
Альберт
Не понял, можно поподробнее?
@override
 Stream<Transition<PostEvent, PostState>> transformEvents(
   Stream<PostEvent> events,
   TransitionFunction<PostEvent, PostState> transitionFn,
 ) {
   return super.transformEvents(
     events.distinct((e1,e2) => false),
     transitionFn,
   );
 }
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Dagba 
@override
 Stream<Transition<PostEvent, PostState>> transformEvents(
   Stream<PostEvent> events,
   TransitionFunction<PostEvent, PostState> transitionFn,
 ) {
   return super.transformEvents(
     events.distinct((e1,e2) => false),
     transitionFn,
   );
 }
Так это не поможет же никак
источник

D

Dagba  in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
Так это не поможет же никак
а да
источник

D

Dagba  in Flutter Developers — русскоговорящее сообщество
понял
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Dagba 
а да
https://github.com/felangel/bloc/blob/master/packages/bloc/lib/src/bloc.dart#L235

Вот тут фильтруются равные стейты
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Оно инкапсулировано в блок и вы это убрать не сможете.
К сожалению.
источник

D

Dagba  in Flutter Developers — русскоговорящее сообщество
спасибо, посмотрю
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Так что просто делайте стейты разными
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
можете сделать какойнить миксин там, переопределив оператор == у них
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
чтоб всегда возвращал false
источник