Size: a a a

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

2021 March 09

s

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

s

shawas in Dart & Flutter по-русски
если вместо return ListView.builder() просто Text("123") то нормально отображается, если ListView.builder отступ верхний прилетает
источник

RE

Radomir Epur in Dart & Flutter по-русски
shawas
если вместо return ListView.builder() просто Text("123") то нормально отображается, если ListView.builder отступ верхний прилетает
Для начала, хорошо бы докстринги почитать
источник

n_

nikto _b in Dart & Flutter по-русски
null можно заменить на const SizedBox()
источник

s

shawas in Dart & Flutter по-русски
nikto _b
null можно заменить на const SizedBox()
спс, не знал
источник

n_

nikto _b in Dart & Flutter по-русски
Не уверен по поводу чистоты такого метода, но да
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Вопрос крутым BLOC-ерам. У меня виджет использует два BLOC, один глобальный (провайдится в корне приложения), второй локальный, создается прямо в методе build() выше консьюмера. И самое смешное, что это замечательно работает. При перевороте экрана, и прочих вещах локальное состояние не сбрасывается! Что ставит вопрос - а зачем нам вообще stateful виджеты, если и stateless прекрасно умеют хранить локальное состояние формы. Вот код:
class DefectAdd extends StatelessWidget {
 @override
 build(context) {
   var issueModel = context.read<IssueModel>();
   var defectModel = DefectModel();
   return BlocConsumer<DefectModel, DefectState>(
     cubit: defectModel,
     builder: (context, state) {
       return Scaffold(...
источник

V

Varga in Dart & Flutter по-русски
Евгений Баладжа
Вопрос крутым BLOC-ерам. У меня виджет использует два BLOC, один глобальный (провайдится в корне приложения), второй локальный, создается прямо в методе build() выше консьюмера. И самое смешное, что это замечательно работает. При перевороте экрана, и прочих вещах локальное состояние не сбрасывается! Что ставит вопрос - а зачем нам вообще stateful виджеты, если и stateless прекрасно умеют хранить локальное состояние формы. Вот код:
class DefectAdd extends StatelessWidget {
 @override
 build(context) {
   var issueModel = context.read<IssueModel>();
   var defectModel = DefectModel();
   return BlocConsumer<DefectModel, DefectState>(
     cubit: defectModel,
     builder: (context, state) {
       return Scaffold(...
У стейта стейтфулла есть замечательные методы жизненного цикла, которые удобно использовать для всякого)
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Varga
У стейта стейтфулла есть замечательные методы жизненного цикла, которые удобно использовать для всякого)
Это да, но меня поразило, что мой пример тоже работает. Понятно почему - флаттер кэширует виджеты по параметрам конструктора. Это аналог хука вообще-то, только неявного хука. Насколько безопасно пользоваться таким в проде, пока не понял.
источник

ОК

Олег Коротин... in Dart & Flutter по-русски
Ребят, а может глупый вопрос, но bloc с vanila использовать это вообще нормальная практика?
источник

ОК

Олег Коротин... in Dart & Flutter по-русски
Ну в том плане, что если мне, например, нужно в Hive записать что-то, то нормально ли будет это сделать тупо через setState? При условии что в целом проект стоит на bloc
источник

RE

Radomir Epur in Dart & Flutter по-русски
Евгений Баладжа
Вопрос крутым BLOC-ерам. У меня виджет использует два BLOC, один глобальный (провайдится в корне приложения), второй локальный, создается прямо в методе build() выше консьюмера. И самое смешное, что это замечательно работает. При перевороте экрана, и прочих вещах локальное состояние не сбрасывается! Что ставит вопрос - а зачем нам вообще stateful виджеты, если и stateless прекрасно умеют хранить локальное состояние формы. Вот код:
class DefectAdd extends StatelessWidget {
 @override
 build(context) {
   var issueModel = context.read<IssueModel>();
   var defectModel = DefectModel();
   return BlocConsumer<DefectModel, DefectState>(
     cubit: defectModel,
     builder: (context, state) {
       return Scaffold(...
Ну, в твоем случае StatefulWidget нужен, как минимум, для того чтобы в dispose вызывать defectModel.close(), чего ты, как раз, не сделал.
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Как в приложении на Флаттере сделать глобальный отлов ошибок (без использования костылей типа глобального event bus)?
Чтобы в контроллере делать rethrow исключения, и на стороне UI его ловить и выводить Snackbar.
источник

RE

Radomir Epur in Dart & Flutter по-русски
Олег Коротин
Ребят, а может глупый вопрос, но bloc с vanila использовать это вообще нормальная практика?
Встречный вопрос? А зачем? Если весь проект на BLoC'е, в чем преимущество, что ты выиграешь от того, что ты какой-то экран сделаешь vanilla вместо блока?
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Каждый запрос типа await context.read<ProfileStore>().fetchUsers() оборачивать в try-catch — это уныло.
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Radomir Epur
Ну, в твоем случае StatefulWidget нужен, как минимум, для того чтобы в dispose вызывать defectModel.close(), чего ты, как раз, не сделал.
А если не вызвать, разве сборщик мусора ее не прибъет? Я избалован растом, где все деструкторы автоматические))
источник

RE

Radomir Epur in Dart & Flutter по-русски
Евгений Баладжа
А если не вызвать, разве сборщик мусора ее не прибъет? Я избалован растом, где все деструкторы автоматические))
ага, щас. Тогда зачем вообще эти методы close создаются?
источник

ОК

Олег Коротин... in Dart & Flutter по-русски
Radomir Epur
Встречный вопрос? А зачем? Если весь проект на BLoC'е, в чем преимущество, что ты выиграешь от того, что ты какой-то экран сделаешь vanilla вместо блока?
Например, есть раздел экранов настроек, где куча групп чекбоксов. Если в bloc выносить стейты этих чекбоксов в группах, то будет куча BLoC-ов. По мне так это сильно засорит дерево файлов. По сути мне нужно только записывать значение каждого чекбокса в Hive и все. Ну и чтобы стейт менялся, конечно.
источник

RE

Radomir Epur in Dart & Flutter по-русски
Олег Коротин
Например, есть раздел экранов настроек, где куча групп чекбоксов. Если в bloc выносить стейты этих чекбоксов в группах, то будет куча BLoC-ов. По мне так это сильно засорит дерево файлов. По сути мне нужно только записывать значение каждого чекбокса в Hive и все. Ну и чтобы стейт менялся, конечно.
Может, все-таки, можно придумать как сделать один маленький блок?
источник

RE

Radomir Epur in Dart & Flutter по-русски
Sergey Hottabych
Как в приложении на Флаттере сделать глобальный отлов ошибок (без использования костылей типа глобального event bus)?
Чтобы в контроллере делать rethrow исключения, и на стороне UI его ловить и выводить Snackbar.
источник