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

Flutter Web移动端浏览器跳转后URL更新但页面冻结无响应问题求助

可能的解决方案

1. 导航前强制移除输入框焦点

移动端浏览器中,输入框持有的焦点可能干扰页面导航的DOM更新逻辑。在调用context.pushNamed前主动移除焦点:

// 按钮点击回调内
FocusScope.of(context).unfocus();
await context.pushNamed('pageC');

2. 排查PageC的Widget树异常

确认PageC的build方法中无无限循环、阻塞UI的耗时操作,或未正确处理的状态冲突。比如检查initState是否执行了同步阻塞逻辑,TextFormField的控制器、表单状态是否存在初始化异常。

3. 临时替换导航方式测试

用replaceNamed替代pushNamed,验证是否能绕过冻结问题:

context.replaceNamed('pageC');

若此方法有效,说明页面栈状态在移动端浏览器中存在异常,需进一步排查栈管理逻辑。

4. 升级Flutter与GoRouter版本

部分旧版本的Flutter Web或GoRouter在移动端浏览器存在导航相关bug,尝试升级到最新稳定版:

  • 执行flutter upgrade升级Flutter
  • 在pubspec.yaml中更新GoRouter版本后,执行flutter pub get

5. 检查PageB输入框的焦点管理

若PageB的TextFormField使用了自定义FocusNode,需确保页面销毁时调用dispose(),或在导航前手动调用focusNode.unfocus()释放焦点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:14:53