Следует ли использовать флаттер-маршрутизацию во вложенной маршрутизации или вместо этого следует использовать просмотр страницы?

Исходя из веб-фона (угловой), я действительно смущен маршрутизацией флаттера.

Похоже, я не одинок (1, 2, ...).

Судя по относительной сложности ответов и различным ошибкам, связанным с некоторыми из них, мне интересно, не пытаюсь ли я просто использовать навигатор как-то иначе. Я пытаюсь использовать его, как если бы я использовал маршрутизатор веб-фреймворка. Если маршрутизация во флаттере предназначена для изменения всего экрана, а не дочерних виджетов.

web_nav

В Интернете следующая навигация будет примерно такой:

{ path: '/sign-in', widget: SignInPage() },
{ path: '/', widget: HomePage(), children: [
    { path: '/a', widget: DashboardPage() },
    { path: '/b', widget: ProfilePage(), children: [
       { path: '/general', widget: BGeneralPage() },
       { path: '/settings', widget: BSettingsPage() },
    ] }
] }
// example url x.com/b/settings

Во флаттере можно поставить вложенный навигатор, но горячая перезагрузка вроде не работает, к тому же анимация по умолчанию довольно дрянная. Даже в документации по вложенной навигации говорится, что «возможен аналогичный результат. используя только один навигатор ››.

Мне кажется, что система маршрутизации предназначена для использования, когда мы хотим изменить весь экран. PageView и TabBarView - это виджеты, используемые для внутренней навигации.

- Это так?

Однако я вижу потенциальную проблему в том, что когда будет доступен флаттер-веб, у него не будет подходящих URL-адресов.


person Ced    schedule 27.10.2020    source источник
comment
В документах Navigator 2 указаны некоторые возможности реализации собственного маршрутизатора с парсингом uri и onRouteGenerate. Вы изучали дополнительные пакеты для обработки маршрутизации в стиле angular (например, GetX)?   -  person Vincent AUDIBERT    schedule 08.05.2021
comment
flutter_modular (вместо GetX) в конечном итоге удовлетворил некоторые аналогичные потребности в моем случае, предоставив угловой способ объявления модулей и их вложенной маршрутизации.   -  person Vincent AUDIBERT    schedule 12.05.2021