169 похожих чатов

Я снова столкнулся с особенностями State-Management ов. Сейчас делаю провайдер

для каждого экрана. История комфортная. Но! Иногда нужно проинициализировать провайдер следующего окна открываемый навигатором, сделать анимацию загрузки данных по апи при этом. Вот как лучше передать объект экрану. До вызова navigator.push. В конструкторе экрана, или подключить провайдер к родительскому экрану и вызвать функцию провайдера в нем? Объект, который передается, лучше передавать статически т.к. редактирование уже завершено.

8 ответов

15 просмотров

Оберните MaterialApp в провайдер. И у обоих экранов будет доступ к нему.

Vladislav-B Автор вопроса

Да, но логичнее было бы отдельный провайдеры для экранов

Vladislav B
Да, но логичнее было бы отдельный провайдеры для э...

Для лучшего понимания, зачем нужен провайдер, почитайте статью https://flutter.dev/docs/development/data-and-backend/state-mgmt/simple, посмотрите схемки. Провайдер устанавливается выше по дереву, и хранит в себе ссылку на класс. Виджеты ниже по дереву могут к нему обращаться. Смысл именно в том, чтобы из разных мест (с разных экранов, страниц, виджетов) можно было обратиться к одному и тому же источнику данных. Делать "провайдер = экран" — это все равно, что в initState создать класс, а в dispose удалить.

Sergio Molchanovsky
Для лучшего понимания, зачем нужен провайдер, почи...

Или описка или я чего-то не понимаю. Как раз провайдер=экран, это хорошо, потому что на экране несколько виджетов и при обновлении состояния мы перерисовываем только избранные, а не весь экран. И модель (логика) экрана выносится из ui. Или что имелось в виду под "экраном"?

Sergio Molchanovsky
Для лучшего понимания, зачем нужен провайдер, почи...

Я правда для экранов использую свой "провайдер" на инхеритеднотифаере, по урокам Евгения

Vladislav-B Автор вопроса

Допустим, а как тогда сделать эти объекты видимыми разным провайдерам. А уведомлять об их изменениях?

Vladislav B
Допустим, а как тогда сделать эти объекты видимыми...

Уведомлять об изменениях: есть ChangeNofitierProxyProvider, он реагирует на notifyListeners() и вызывает на инстансе класса метод update()

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта