我目前正在尝试使用新的 Flutter web beta 构建一个 web 应用程序。问题是能够拥有历史记录,处理浏览器中的前进和后退按钮,并能够处理用户输入到需要新 Navigator 2.0 API 的 URL(至少从我的理解)。
目前只有少数可用资源,我正在尝试基于这些资源构建我的导航器。我使用的资源:
我设法让后退和前进按钮,以及历史工作。但是,我很难处理页面切换(在 Navigator() 中)。在 John 的示例中,他管理 Navigator 小部件的 'page:' 数组中的不同站点(在 routeDelegater 中)。这对我来说似乎很奇怪,但我像这样尝试过,但它并没有真正起作用(代码进一步向下)。
在“页面:[]”中,我首先尝试让布尔值触发(如 show404),但这不是很干净,所以我的下一次尝试是按如下方式获取当前页面(在数组中):
if(_currentPage.name == 'pages[0]') pageBuilds[0]
Run Code Online (Sandbox Code Playgroud)
这有点奏效,因为我可以输入段 /matchit/0 并加载正确的页面,但是由于某种原因,“/”路由不再起作用,我收到了错误
Navigator.onGenerateRoute was null, but the route named "/" was referenced
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用 'ongenerateRoute' 但这只是抛出了一堆错误。我有点新,所以也许我在那里做错了什么。但在我看来这不是正确的方法。这就是我目前陷入困境的地方。我不知道接下来该尝试什么,希望你们中的一些人可以帮助我。
我的 Route-Delegater 如下所示(我将在代码中包含我的注释,也许它可以帮助你们中的一些人,他们也希望了解 Navigator 2.0,了解正在发生的事情):
/**
* The RouteDelegate defines application specific behavious of how the router
* …Run Code Online (Sandbox Code Playgroud) navigator flutter flutter-navigation flutter-web flutter-routes