网页中的 Flutter GetX 路由

Posted

技术标签:

【中文标题】网页中的 Flutter GetX 路由【英文标题】:Flutter GetX routing in web 【发布时间】:2021-08-12 11:32:49 【问题描述】:

我想知道是否可以在访问另一个屏幕之前推送我的初始路线屏幕。 这是我第一次使用 Flutter Web 和 GetX,我不知道这是否是预期的行为。

目前,当我尝试通过键入 http://localhost:64289/transaction/1 直接从 URL 访问 TransactionDetailPage 时,它不会推送我的 MainHomePage 屏幕。当我以这种方式访问​​时,TransactionDetailPage AppBar 中没有返回按钮。

每当用户尝试直接从 URL 访问其他页面时,我想要做的是在屏幕的第一个堆栈上推送MainHomePage,因此总是有一个后退按钮可以将当前屏幕弹出到我的主页。我怎样才能做到这一点?

ma​​in.dart

Widget build(BuildContext context) 
    return GetMaterialApp(
      title: 'Flutter test',
      debugShowCheckedModeBanner: false,
      initialRoute: '/',
      getPages: [
        GetPage(
           name: '/',
           page: () => MainHomePage(),
        ),
        GetPage(
           name: '/transaction/:id',
           page: () => TransactionDetailPage(),
        ),
      ],
    );
  

【问题讨论】:

【参考方案1】:

给 MainHomePage 一个路由名称,如下所示:

GetPage(
          name: '/home',
          page: () => MainHomePage(),
       ),

同时更改初始路由:initialRoute: '/home'

使用Get.toNamed('/transaction'); 导航到交易页面。

也可以使用Get.back();返回主页。

【讨论】:

以上是关于网页中的 Flutter GetX 路由的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 GetX 包管理 Flutter Web URL 路由?

Flutter GetX 路由会重定向到 initialRoute

Flutter -- GetX准备篇

Flutter状态管理--GetX的简单使用

Flutter之GetX入门指南 ObxWidget原理剖析

Flutter之GetX入门指南 ObxWidget原理剖析