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

Flutter Riverpod跳转页面报错:Bad State No ProviderScope found

解决Riverpod跳转页面时"Bad state: No ProviderScope found"错误

问题原因

你当前把ProviderScope仅包裹在MaterialApp的home子组件上,但MaterialApp内部会创建独立的导航上下文。通过Navigator.of(context)跳转页面时,新页面的上下文属于MaterialApp的导航树,不在ProviderScope的覆盖范围内,因此找不到Riverpod的状态作用域。

修复方案

将ProviderScope提升到MaterialApp外层,确保整个应用(包括所有导航页面)都处于Riverpod的状态作用域中。

修改后的代码

@override
Widget build(BuildContext context) {
  return ProviderScope( // 将ProviderScope移到MaterialApp外层
    child: MaterialApp(
      title: 'Flutter',
      theme: ThemeData(
        brightness: Brightness.light,
        /* light theme settings */
      ),
      darkTheme: ThemeData(
          brightness: Brightness.dark,
          /* dark theme settings */
          ),
      themeMode: ThemeMode.dark,
      home: const SafeArea(child: AuthHandlerScreen()),
    ),
  );
}

原代码问题说明

原代码里ProviderScope只覆盖了home的内容,MaterialApp本身不在作用域内,导致它创建的Navigator上下文无法访问Riverpod provider,跳转后的自然也找不到状态作用域。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:20:45