网页中的 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
,因此总是有一个后退按钮可以将当前屏幕弹出到我的主页。我怎样才能做到这一点?
main.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