You need to enable JavaScript to run this app. Flutter跳转DashboardPage报错找不到对应DashboardBloc Provider求助
优惠活动
大模型
产品
解决方案
定价
更多

Flutter跳转DashboardPage报错找不到对应DashboardBloc Provider求助

问题根因

你当前的跳转逻辑直接通过MaterialPageRoute实例化DashboardPage,没有走你预先配置的Fluro路由规则,因此dashboardHandler中定义的BlocProvider<DashboardBloc>没有被注入到组件树中,导致DashboardPage无法找到上层的DashboardBloc实例。

解决方案

推荐优先复用你已经写好的路由配置,修改所有跳转DashboardPage的逻辑即可:

步骤1:替换跳转代码

将AuthPage中两处跳转DashboardPage的代码:

Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => DashboardPage()),
);

统一替换为Fluro的路由跳转写法:

// 需先导入你定义router实例的文件
router.navigateTo(context, DashboardPage.routeName);

如果认证完成后不希望用户可以退回认证页,可以加replace参数销毁当前页面:

router.navigateTo(context, DashboardPage.routeName, replace: true);

步骤2:检查根路由配置

确认你的根MaterialApp已经配置了Fluro的路由生成器,确保路由规则可以生效:

MaterialApp(
  // 其他配置项
  onGenerateRoute: router.generator,
)
备选方案(不推荐)

如果你不想走Fluro路由跳转,也可以在直接跳转时手动注入DashboardBloc,但会和你已有的路由配置逻辑重复:

Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => BlocProvider<DashboardBloc>(
    create: (_) => DashboardBloc(accountRepository: accountRepository),
    child: DashboardPage(),
  )),
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 09:06:03