Flutter - отображение диалогового окна предупреждения после загрузки данных и пользовательского интерфейса StreamBuilder. - PullRequest
0 голосов
/ 06 мая 2020

Я хочу показать диалоговое окно с предупреждением после получения данных от StreamBuilder. У меня также есть пользовательский интерфейс для рендеринга. В настоящее время у меня возникает такая ошибка, когда я пытаюсь создать диалог внутри метода _loadUI перед возвратом фактического пользовательского интерфейса.

setState () или markNeedsBuild (), вызываемые во время сборки.

Код:

if (dataSnapshot.hasData) {
            return dataSnapshot.data ? _loadUI(dataSnapshot.data) : _emptyView();
          }

1 Ответ

1 голос
/ 06 мая 2020

Вы можете сделать так:

void _loadUI(snapshot) {
...

  WidgetsBinding.instance.addPostFrameCallback((_){
    showDialog(
      context: context, 
      ...
    );
  });
}

addPostFrameCallback запускается во время кадра сразу после постоянных обратных вызовов кадра (когда основной конвейер рендеринга был сброшен).

...