Где обращаться с ссылками Firebase Dynami c во флаттере? - PullRequest
0 голосов
/ 21 февраля 2020

Я использую динамические ссылки Firebase c, а также именованные маршруты. Я хочу установить глобальный прослушиватель динамических событий c link и переслать страницу регистрации, если указан токен. В приведенном ниже коде я получил исключение The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget., которое означает, что я должен поместить код навигации ниже свойства home: MaterialApp. Но при этом мне пришлось реализовать динамический обработчик событий c links для маршрута earch.

class MyApp extends StatelessWidget {
  String title = "Framr";

  @override
  Widget build(BuildContext context) {

    FirebaseDynamicLinks.instance.onLink(
      onSuccess: (linkData) {
        if (linkData != null) {
          try {
            Navigator.pushNamed(context, '/register', arguments: linkData);
            // throws: The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget.
          } catch(e) {
            print(e);
          }
        }
        return null;
      }
    );

    return MaterialApp(
      title: "...",
      home: LoginPage(),
      routes: {
        '/createEvent': (context) => CreateEventPage(),
        '/showEvent': (context) => ShowEventPage(),
        '/register': (context) => RegisterPage(),
      },
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...