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

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

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

8 ответов

11 просмотров

Оберните 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()

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
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
Карта сайта