理解 Flutter 导航:直接类实例化与 Navigator.push

问题描述 投票:0回答:1

我对 Flutter 比较陌生,一直在我的应用程序中尝试导航和身份验证流程。这一探索提出了一些有关屏幕转换最佳实践的基本问题,特别是在处理用户身份验证状态时。

  1. 直接实例化小部件与使用 Navigator.push:

    在 Flutter 中,我看到了两种导航到新屏幕的方法:直接返回新的 widget 实例(return MyNewWidget();)和使用

    Navigator.push(context, MaterialPageRoute(builder: (context) => MyNewWidget()));
    方法。我倾向于这样的想法:直接创建小部件可能不会利用 Navigator 的内置功能,例如自动后退按钮支持或覆盖
    didPop()
    方法的能力。选择一种方法而不是另一种方法会影响管理身份验证状态更改的方式或影响应用程序的导航结构吗?

  2. 导航方式推荐:

    考虑到这两种导航方法之间的潜在差异和限制,是否建议主要使用 Navigator 在 Flutter 应用程序中进行导航?我有兴趣了解是否有关于维护连贯且可管理的导航堆栈的最佳实践,特别是在涉及状态更改的场景中,以及如何最好地利用导航器的功能。

作为一个仍在编程和 Flutter 学习曲线上的人,我很感激我能得到的所有指导。虽然这些问题对于更有经验的开发人员来说可能看起来很基本,但在现阶段清楚地理解这些概念对我来说至关重要。

预先感谢您的见解和建议!

flutter navigation
1个回答
0
投票

所以首先你需要了解导航在 flutter 中是如何工作的。

每当您通过

Navigator.push
推送到任何页面时,它都会将推送的页面添加为堆栈。例如,想象一下白皮书列表,您在材料页面中给出的第一页(主页)是第一篇论文。现在你只有一张白皮书(页),当你推到另一页时,你在上面添加另一张纸(页)。

根据更改更改页面可能是某些部分的解决方案,但并非所有地方都可以。因为如果您从事实际或大型项目,您可能会有很多页面。因此存在弹出功能,当您从页面退出时,它会弹出到上一个页面,因此根据事件更改类在这里并不是最佳解决方案。 更改类可能在带有底部导航栏的主页中有用。

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.