弹出直到颤振自动路由包不起作用



我正在使用Flutter的AutoRoute包。

我使用自动路由包生成了以下两个屏幕

HomeRoute()
ProductsRoute()

然后从HomeRoute开始,我执行以下操作,

context.router.push(const ProductsRoute());

然后在ProductRoute中,我调用initState中的API,如果发生错误,我将显示一个弹出窗口,显示Something went wrong!。这里,

我想弹出警报,然后弹出ProductsRoute(),以便用户导航回HomeRoute()

因此,使用AutoRoute,我做了以下操作,

context.router.popUntil((route) => route.settings.name == 'HomeRoute')

这不起作用。它把我带到一个白色屏幕。

然而,如果我做两次context.route.pop(),它确实有效。

有人能告诉我我做错了什么吗?我如何使用Auto Route软件包导航回HomeRoute()

谢谢。

context.router.popUntil((route) => route.name == 'HomeRoute')

context.router.popUntilRouteWithName('HomeRoute')

我发现了问题,

有了popUntil,如果我想去HomeRoute,我不应该提到HomeRoute。相反,我应该提到HomeRoute之后的堆栈上的路由。然后它开始工作,

例如,假设我有以下堆栈,

屏幕A->屏幕B->屏幕C->ScreenD

现在,如果我想让用户通过弹出screen D的所有屏幕来显示screen A

我应该这样做,

context.router.popUntilRouteWithName(ScreenBRoute.name);   // <---- Should do

context.router.popUntilRouteWithName(ScreenARoute.name);   // <---- Should not do

最新更新