Size: a a a

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

2021 March 09

ЕБ

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

SH

Sergey Hottabych in Dart & Flutter по-русски
Олег Коротин
Например, есть раздел экранов настроек, где куча групп чекбоксов. Если в bloc выносить стейты этих чекбоксов в группах, то будет куча BLoC-ов. По мне так это сильно засорит дерево файлов. По сути мне нужно только записывать значение каждого чекбокса в Hive и все. Ну и чтобы стейт менялся, конечно.
Лучше бы сделать 1 стор на MobX / 1 контроллер GetX, с @observable bool'ами, соответствующими значениям чекбоксов.
источник

ОК

Олег Коротин... in Dart & Flutter по-русски
Sergey Hottabych
Лучше бы сделать 1 стор на MobX / 1 контроллер GetX, с @observable bool'ами, соответствующими значениям чекбоксов.
Нуу это до первого перезапуска приложения.
источник

RE

Radomir Epur in Dart & Flutter по-русски
Евгений Баладжа
Насколько я понял, диспозы нужны чтоб прибить побочные эффекты, например запущенную фьючу, или открытый сокет, или базу данных. Если в блоке все в оперативной памяти - сборщик мусора dart должен корректно ее прибивать, включая стримы.
Вруби линтер. На первых парах много будет помогать.
источник

V

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

SH

Sergey Hottabych in Dart & Flutter по-русски
Олег Коротин
Нуу это до первого перезапуска приложения.
А, вам надо сохранить в память.
Ну тогда Hive, да.
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Я думал, у вас там что-то эфемерное, типа фильтры настроить.
источник

ОК

Олег Коротин... in Dart & Flutter по-русски
Да нет, это глобальные настройки приложения. И нужно как-то деликатно сделать их стейт
источник

ОК

Олег Коротин... in Dart & Flutter по-русски
BLoC-ом не представляю как это сделать в одном bloc-е
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Radomir Epur
Вруби линтер. На первых парах много будет помогать.
О, спасибо, это ценно!
В моем случае используется Cubit, там нет синков, так что вроде норм. А как правильно, получается, имея BLOC, мне все равно нужно объявлять stateful виджет, если состояние чисто-локальное? Как то жалко пальцев...
источник

RE

Radomir Epur in Dart & Flutter по-русски
Евгений Баладжа
О, спасибо, это ценно!
В моем случае используется Cubit, там нет синков, так что вроде норм. А как правильно, получается, имея BLOC, мне все равно нужно объявлять stateful виджет, если состояние чисто-локальное? Как то жалко пальцев...
Используй BlocProvider
источник

RE

Radomir Epur in Dart & Flutter по-русски
Евгений Баладжа
О, спасибо, это ценно!
В моем случае используется Cubit, там нет синков, так что вроде норм. А как правильно, получается, имея BLOC, мне все равно нужно объявлять stateful виджет, если состояние чисто-локальное? Как то жалко пальцев...
источник

V

Vyacheslav in Dart & Flutter по-русски
Олег Коротин
BLoC-ом не представляю как это сделать в одном bloc-е
возможно я просто не понял, но я бы создал класс MyPresets с набором параметров. И блоком работал бы с этим классом. Один класс - один блок. Соответственно, в виджете считываю стейт блока с экземпляром этого класса, и строю виджет
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Radomir Epur
Используй BlocProvider
И где его разместить? В одном виджете выше по дереву размещаем провайдер, и в этом же виджете консьюмер?
источник

RE

Radomir Epur in Dart & Flutter по-русски
Евгений Баладжа
И где его разместить? В одном виджете выше по дереву размещаем провайдер, и в этом же виджете консьюмер?
Да, консьюмер child провайдера
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Не совсем то, это подключение Sentry, который еще и платный.
Я сейчас в сторону пакета catcher смотрю.
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Radomir Epur
Да, консьюмер child провайдера
о боже
источник

RE

Radomir Epur in Dart & Flutter по-русски
Sergey Hottabych
Не совсем то, это подключение Sentry, который еще и платный.
Я сейчас в сторону пакета catcher смотрю.
Вообще-то нет. То что тебе надо, там есть. Ты спросил как отлавливать, вот ответ:
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Евгений Баладжа
Насколько я понял, диспозы нужны чтоб прибить побочные эффекты, например запущенную фьючу, или открытый сокет, или базу данных. Если в блоке все в оперативной памяти - сборщик мусора dart должен корректно ее прибивать, включая стримы.
1. это не сайд-эффекты
2. все стримы, сокеты, бд, подписки и т.д., все это нужно закрывать вручную в методе dispose. "Само" не удалится.
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Radomir Epur
Вообще-то нет. То что тебе надо, там есть. Ты спросил как отлавливать, вот ответ:
Ну в принципе да, спасибо.
источник