dart – 如何在我的Flutter应用程序中重置基本路由 – 即d出任何路由并使用Navigator将其替换为新路由

dart – 如何在我的Flutter应用程序中重置基本路由 – 即d出任何路由并使用Navigator将其替换为新路由,第1张

概述如果这很明显,那么Flutter的新人请原谅我,但我已阅读文档并尝试了一堆Navigator选项,但它们都没有按照我的意愿工作.问题集:我们有一系列复杂(良好,半复杂)的屏幕等处理登录/授权/注册过程.这可以在Route堆栈上降低到3或4级.这一切都很好 – 不用担心. 当我们获得一个成功的登录事件(来自几个不同的路径)并想要转到“主页”页面时,问题就出现了.一旦我们在主页上应该是Route树的新 如果这很明显,那么Flutter的新人请原谅我,但我已阅读文档并尝试了一堆Navigator选项,但它们都没有按照我的意愿工作.问题集:我们有一系列复杂(良好,半复杂)的屏幕等处理登录/授权/注册过程.这可以在Route堆栈上降低到3或4级.这一切都很好 – 不用担心.

当我们获得一个成功的登录事件(来自几个不同的路径)并想要转到“主页”页面时,问题就出现了.一旦我们在主页上应该是Route树的新“根”(我确信这不是正确的术语 – 但我认为这个想法是可靠的).

所以,考虑到我们可能是1/2/3甚至4级,并希望“d出”并将整个堆栈(请将任何转换事件)替换为新的顶级根 – 什么神奇的Navigator集或方法将干净利落地做?

我当前(可怕的)方法是手动“pop()”级别并执行Navigator.pushReplacementnamed()调用(这里都是命名路由)但这不是通用解决方案(必须确切知道多少级别)更糟糕的是,它会导致“动画”过渡到屏幕上的“d出”一瞬间,每个pop()看起来……不是很好.

TIA!

解决方法 Navigator暴露的不仅仅是pop.您可以执行以下 *** 作:

Navigator.pushnamedAndRemoveUntil(context,'/',(_) => false);

这将基本上推动一个家,并删除新的后面的所有路线

总结

以上是内存溢出为你收集整理的dart – 如何在我的Flutter应用程序中重置基本路由 – 即d出任何路由并使用Navigator将其替换为新路由全部内容,希望文章能够帮你解决dart – 如何在我的Flutter应用程序中重置基本路由 – 即d出任何路由并使用Navigator将其替换为新路由所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1001846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存