Size: a a a

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

2020 October 14

AG

Artem Goryunov in Flutter Developers — русскоговорящее сообщество
Понял, спасибо)
источник

G

Gray in Flutter Developers — русскоговорящее сообщество
Artem Goryunov
Понял, спасибо)
Иногда не обезательно выносить весю декорацию, можно только какой-то один параметр.
Если в приложении только несколько ваириантов декорации, то можно через enumс делать.
источник

ВМ

Виктор Магаев... in Flutter Developers — русскоговорящее сообщество
Artem Goryunov
Понял, спасибо)
Доброе утро) если понял, можешь плиз шарнуть какой-нить класс/код, который получился)
источник

ВМ

Виктор Магаев... in Flutter Developers — русскоговорящее сообщество
а то я не врубился
источник

AG

Artem Goryunov in Flutter Developers — русскоговорящее сообщество
Виктор Магаев
Доброе утро) если понял, можешь плиз шарнуть какой-нить класс/код, который получился)
да просто конструктор делаешь который принимает объект типа InputDecoration и все
источник

ВМ

Виктор Магаев... in Flutter Developers — русскоговорящее сообщество
а, теперь понял, это не совсем то, что искал
источник

ВМ

Виктор Магаев... in Flutter Developers — русскоговорящее сообщество
мне так в конструкторе придётся все поля перечислять
источник

ВМ

Виктор Магаев... in Flutter Developers — русскоговорящее сообщество
*всевозможные поля TextFieldForm перечислять
источник

AG

Artem Goryunov in Flutter Developers — русскоговорящее сообщество
Виктор Магаев
*всевозможные поля TextFieldForm перечислять
ты можешь сконструировать этот декоратор с нужными полями по идее которые вынести в конструктор
источник

ВМ

Виктор Магаев... in Flutter Developers — русскоговорящее сообщество
видимо во flutter немного наоборот

In a sense, you have one StatelessWidget for each "CSS class", instead of one big StatelessWidget with many parameters.

https://stackoverflow.com/a/57943333/685279
источник

ВМ

Виктор Магаев... in Flutter Developers — русскоговорящее сообщество
мне не надо создавать виджет RedText, я создаю виджет RedBackground:

RedBackground(
 child: Text('hello world'),
)
источник

ВМ

Виктор Магаев... in Flutter Developers — русскоговорящее сообщество
правильно? 🙂
источник

I

Igor in Flutter Developers — русскоговорящее сообщество
Привет бро! Подскажите, при http запросах, (этот метод обернут в Future), в случае если статус не 200, как венруть ошибку?
источник

I

Igor in Flutter Developers — русскоговорящее сообщество
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Igor
Привет бро! Подскажите, при http запросах, (этот метод обернут в Future), в случае если статус не 200, как венруть ошибку?
Ошибки аутентификации надо обрабатывать в мидлваре.
А тут правильнее было бы сделать не Future<bool>, а Future<void>.
На неудачную аутентификацию возвращать throw AuthException
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Future<bool> - очень пососный вариант с кучей подводных камней.
У тебя должна быть мидлваря со стримом аутентификации.
Ибо 401 и 403 статусы ты можешь поиметь не только при логине, но и при любом другом запросе
источник

I

Igor in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
Future<bool> - очень пососный вариант с кучей подводных камней.
У тебя должна быть мидлваря со стримом аутентификации.
Ибо 401 и 403 статусы ты можешь поиметь не только при логине, но и при любом другом запросе
ну то понятно. там при каждом запросе может быть 401, 403. тут то же, это кусок бизнес логики.
А как вызвать throw AuthException чет не соображу? :)
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Создай класс:

class АутентификацияИсключение extends Exception {

}
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Вызови при ошибке аутентификации (не 200 коде): throw АутентификацияИсключение()
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Где то ниже по стеку жди конкретную ошибку таким образом:

try {
 await _выполнитьАутентификацию();
} on АутентификацияИсключение catch (_) {
 await _разрулитьИлиОбыгратьОшибкуАутентификации();
 // rethrow; <= опционально
}
источник