Flutter — Изменение маршрута внутри списка маршрутов

#flutter #authentication #flutter-navigation

Вопрос:

Моему приложению необходимо, чтобы пользователь вошел в систему для доступа к главному экрану. В прошлом я реализовал это, имея Wrapper родительский виджет, который возвращал Login бы или Home виджеты, основанные на статусе аутентификации.

Теперь, с Навигатором 2.0, я начал использовать именованные маршруты, и поэтому у меня есть отдельный /login маршрут, который возвращает мой Login виджет. Я хочу, чтобы с / помощью маршрута приложение проверяло текущий статус аутентификации (я знаю, как справиться с этой частью) и, если пользователь не вошел в систему, изменило маршрут на /login

Как я могу это реализовать?

(Я использовал velocityX для обработки Navigator 2.0, поэтому возврат MyApp в файле main.dart должен быть примерно таким:

 bool authenticated = // variable storing if the user is logged in  return MaterialApp.router(  routeInformationParser: VxInformationParser(),  routerDelegate: VxNavigator(routes: {  ‘/‘: (uri, params) =gt; authenticated ? Home() : lt;CHANGE ROUTE SOMEHOWgt;,  ‘/login’: (uni, params) =gt; Login()