我如何使用go_router在flutter应用程序中根据auth状态使路由可用。
我在我的flutter应用程序中有logged_in,logged_out和need_verification auth状态,我有几个路由,我希望用户可以根据他们的auth状态访问它们。我正在使用riverpod来管理状态和go_router进行路由。
我实现了一个逻辑,根据当前的身份验证状态重定向到HomeScreen,LogInScreen或VerifyEmailScreen,它工作正常。问题是我还有一个SignUpScreen和ForgotPasswordScreen,它们应该在logged_out状态下可用,但是当我使用context.go()导航到它们中的任何一个时,重定向逻辑启动并阻止我进入新屏幕,因为状态未更改。
如何使所有注销路由在logged_out状态下可用?
1条答案
按热度按时间h5qlskok1#
您可以在重定向代码中添加一些
if
,当您在SignUpScreen
或ForgotPasswordScreen
上时,这些代码将不会重定向。就像这样:否则: