Есть ли способ создать глобальную переменную из потокового хранилища Stream <DocumentSnapshot>, которая обновляется сама? - PullRequest
0 голосов
/ 17 мая 2019

Я делаю приложение для электронной коммерции и все цены указаны на карте в пожарном магазине.Я с нетерпением ждал, чтобы создать глобальную переменную, к которой можно получить доступ из любой части приложения, и которая будет обновляться при изменении базы данных.

Чего я пытаюсь избежать, так это использования StreamBuilder каждый раз, когда мне нужнополучить доступ к цене.

Я пытаюсь найти решение, но каждый найденный мной способ иметь дело с пожарным магазином - это использовать метод StreamBuilder, и я не могу найти способ превратить это впеременная.

Я знаю, что мое объяснение могло быть немного грязным.Но в основном я пытаюсь сделать так: «Цена карты =« Карта в пожарном депо »»

Есть идеи?Я новичок во флаттере, так что спасибо всем заранее!

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

Вы можете использовать унаследованные виджеты.

Смотрите это видео: https://www.youtube.com/watch?v=Zbm3hjPjQMk

Вы можете прочитать данные, когда ваше приложение начнет использовать BLoC для отделения данных от пользовательского интерфейса. Это объясняется здесь:

https://www.youtube.com/watch?v=fahC3ky_zW0

0 голосов
/ 17 мая 2019

Да, вы должны использовать StreamBuilder везде, если вам нужны реактивные виджеты. Потому что, если данные обновляются сами, значит, ваш виджет имеет состояние, из-за этого вам нужен StatefulWidget (StreamBuilder является StatefulWidget).

Представьте, что вы получили нужную переменную, даже если вам все еще понадобится StreamBuilder, похожий на FutureBuilder или ScopedModelDescendant (если вы используете ScopedModel) или Provider (если вы используете пакет провайдера), и список будет зависеть от того, какой пакет вы используете ...

Не бойся их использовать. Если вы сделаете оставшуюся часть страницы StatelessWidget, вероятно, вы не заметите проблем с производительностью.

...