You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter:API返回401时如何清除所有历史路由并返回WelcomeScreen?

解决API返回401时清空路由栈并跳转至WelcomeScreen的问题

你当前通过多次调用Get.back()的方式无法彻底清空路由栈,这种方式依赖历史页面数量,非常不灵活。可以用GetX提供的Get.offAll()方法直接替换整个导航栈,一次性清空所有历史路由并跳转到目标页面。

修改后的Controller代码

AuthController auth = Get.find();
Future<void> fetchUsers() async{
    var response = await userService.findAll();
    //......
    if(response.code==401){
       auth.authStateStream.value = UnAuthenticated();
       // 清空全部路由栈,跳转至WelcomeScreen
       Get.offAll(() => WelcomeScreen());
    }
}

原理说明

Get.offAll()会将当前整个导航栈替换为目标页面,之后用户点击返回键会直接退出应用,而不会回到之前的任何历史页面,完全符合你需要清空所有历史路由的需求。

另外,你当前的GetMaterialApp中通过Obx根据状态切换home的逻辑可以保留,但状态切换时并不会自动清空路由栈,所以必须主动调用Get.offAll()来完成路由栈的清理,确保状态和路由栈的一致性。

内容的提问来源于stack exchange,提问作者BOOM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 16:35:25