flutter_blo c: сделать метод initialState асинхронным - PullRequest
2 голосов
/ 24 февраля 2020

Я использую пакет flutter_blo c для управления состоянием в моем приложении. У меня есть сценарий использования, где я должен загрузить исходное состояние из удаленной БД. Это требует, чтобы метод initialState был asyn c, а это не так.

Если нет, используя метод initialState, каков наилучший способ загрузки начального состояния Blo c из удаленной БД?

Ответы [ 2 ]

5 голосов
/ 24 февраля 2020

Вы можете отправить event на bloc, чтобы начать загрузку (на нем событие blo c send new LoadingState), где вы получаете и показываете Loader, затем, когда загрузка закончилась bloc, отправьте еще `состояние с данными, и вы просто переключаете состояние загрузки в загруженное (и показывает данные). Вам не нужно ждать звонка , вам нужно просто нажать и получить состояния

0 голосов
/ 05 мая 2020

Другой вариант может заключаться в том, что, например, в файле конфигурации, в который вы внедрили зависимость, вы можете ожидать состояния там. И это состояние затем передается в конструктор блока c. Так что теперь в блоке c вы можете легко указать initialState на тот, который вы передали.

Да, вы должны помнить, что вы должны изменить исходное состояние, когда ваши данные будут готовы.

Теперь я приведу вариант использования для этого сценария. Возможно, у вас уже есть базовая опция c или настройки, отображаемые для пользователя. Эти простые данные вы получаете из исходного состояния. Затем следующее состояние: состояние загрузки, например, может отображать индикатор загрузки, фон которого имеет некоторую непрозрачность. Пользователь уже может видеть базовые параметры c, пока загружаются более необходимые данные.

...