Экран не обновляется sh после изменения потока во Flutter - PullRequest
0 голосов
/ 19 июня 2020

В моем приложении Flutter мой маршрут '/' установлен в Wrapper (),
В этом Wrapper у меня есть следующее:

FirebaseUser user = context.watch<FirebaseUser>();

    if (user == null) {
      return Authentication();
    } else {
      return Home();
    }

Проблема, с которой я столкнулся с этим код состоит в том, что если я обновляю стек навигации, например, Navigator.pushNamed(context, "/login"), оператор return сверху не обновляет экран.

Например, после страницы Authentication() я перенаправляю либо на страницу входа, либо на страницу регистрации с помощью навигатора Flutter. И если состояние FirebaseUser изменится с одной из этих страниц, я не буду перенаправлен на Home() с моего Wrapper(). Мне нужно обновить экран вручную (нажмите снова на Android Emulator), и только тогда я буду перенаправлен на Home().


Я также открыт для завершения «редизайна» структуры моего приложения, если это необходимо.

РЕДАКТИРОВАТЬ: Кроме того, нужна ли мне оболочка? Я реализовал это, чтобы убедиться, что пользователь попадает на нужный экран, так как я не знал, есть ли какие-либо обходные пути с состоянием приложения. Могу ли я обойтись простым использованием навигации без всякой ерунды Wrapper?

...