Size: a a a

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

2020 September 24

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
asyncExpand (который, кстати переопределяется и можно заменить, например на switchMap или собственный трансформер) - ставит эвенты в очередь
источник

🅵

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

🅵

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

🅵

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

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Только .add() и .listen() - все
источник

🅵

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

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Переслано от 🅵🅾️🆇
Какие ошибки вы можете совершить из популярных:

1) начать писать логику непосредственно в mapEventToState, он у вас быстренько превратится в нечитаемую портянку и придете жаловаться на бойлерплейт.
Если правильно готовить блок, то бойлерплейтом там и не пахнет.
Все запредельно воздушно, даже не надо создавать отдельные файлы под эвенты и стейты.
Все ультра емко получается.

2) мутабельные стейты - нет и еще раз нет, все они должны быть помечены @immutable

3) создавать репозиторий прям сразу в блоке, а еще хуже доставлять его внутрь через гет_ит или синглтон, репозиторий может оказаться в блоке только через конструктор, все.

4) огромная ошибка - попробывать создать "свой блок, ведь блок, это паттерн, а не пакет". И еще хуже, если у вашего блока будут публичные методы. У блока должен быть только .add() метод и .listen() метод, больше ничего.

5) довольно минорная ошибка, это если у вашего блока будут публичные переменные и геттеры

6) эвенты или стейты у вас обладают методами.
источник

ST

Sergey Tskh in Flutter Developers — русскоговорящее сообщество
спс, интересно.
источник

ЮП

Юрий Петров... in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
Переслано от 🅵🅾️🆇
Какие ошибки вы можете совершить из популярных:

1) начать писать логику непосредственно в mapEventToState, он у вас быстренько превратится в нечитаемую портянку и придете жаловаться на бойлерплейт.
Если правильно готовить блок, то бойлерплейтом там и не пахнет.
Все запредельно воздушно, даже не надо создавать отдельные файлы под эвенты и стейты.
Все ультра емко получается.

2) мутабельные стейты - нет и еще раз нет, все они должны быть помечены @immutable

3) создавать репозиторий прям сразу в блоке, а еще хуже доставлять его внутрь через гет_ит или синглтон, репозиторий может оказаться в блоке только через конструктор, все.

4) огромная ошибка - попробывать создать "свой блок, ведь блок, это паттерн, а не пакет". И еще хуже, если у вашего блока будут публичные методы. У блока должен быть только .add() метод и .listen() метод, больше ничего.

5) довольно минорная ошибка, это если у вашего блока будут публичные переменные и геттеры

6) эвенты или стейты у вас обладают методами.
Спасибо, хорошие советы.
источник

DC

Denis Chuvasov in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
Переслано от 🅵🅾️🆇
Какие ошибки вы можете совершить из популярных:

1) начать писать логику непосредственно в mapEventToState, он у вас быстренько превратится в нечитаемую портянку и придете жаловаться на бойлерплейт.
Если правильно готовить блок, то бойлерплейтом там и не пахнет.
Все запредельно воздушно, даже не надо создавать отдельные файлы под эвенты и стейты.
Все ультра емко получается.

2) мутабельные стейты - нет и еще раз нет, все они должны быть помечены @immutable

3) создавать репозиторий прям сразу в блоке, а еще хуже доставлять его внутрь через гет_ит или синглтон, репозиторий может оказаться в блоке только через конструктор, все.

4) огромная ошибка - попробывать создать "свой блок, ведь блок, это паттерн, а не пакет". И еще хуже, если у вашего блока будут публичные методы. У блока должен быть только .add() метод и .listen() метод, больше ничего.

5) довольно минорная ошибка, это если у вашего блока будут публичные переменные и геттеры

6) эвенты или стейты у вас обладают методами.
1) не совсем понятно, что имеется ввиду не писать логику в mapEventToState? Выделять в методы?
5) А как сделать блок для экрана логина, где тебе надо будет в поле логина и пароля сетить ошибку, при заполнении/очистки полей ввода надо дизейблить кнопку логина. Все это через стейт пробрасывать что ли? У меня для этого стримы заведены.
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Denis Chuvasov
1) не совсем понятно, что имеется ввиду не писать логику в mapEventToState? Выделять в методы?
5) А как сделать блок для экрана логина, где тебе надо будет в поле логина и пароля сетить ошибку, при заполнении/очистки полей ввода надо дизейблить кнопку логина. Все это через стейт пробрасывать что ли? У меня для этого стримы заведены.
1) нет, в mapEventToState у тебя должен быть роутер, все.
Любые публичные методы - категорическое нет

2) да, через стрим стейтов и только через него
источник

DC

Denis Chuvasov in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
1) нет, в mapEventToState у тебя должен быть роутер, все.
Любые публичные методы - категорическое нет

2) да, через стрим стейтов и только через него
что за роутер? если мне надо сходить на бэк и сделать какое-то действие и вернуть новый стейт.
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Denis Chuvasov
что за роутер? если мне надо сходить на бэк и сделать какое-то действие и вернуть новый стейт.
источник

🅵

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

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Denis Chuvasov
что за роутер? если мне надо сходить на бэк и сделать какое-то действие и вернуть новый стейт.
хэштаблица соответсвий эвентов генераторам например.
источник

DC

Denis Chuvasov in Flutter Developers — русскоговорящее сообщество
ну так _create, _delete_ это же какие-то методы
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Генераторы, все правильно
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Разноси по ним.
Иначе получишь нечитаемую портянку
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Я повидал достаточно mapEventToState на несколько экранов)
источник

🅵

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