错误:在此 Practice4HomePage Widget Flutter(BLoc) 上方找不到正确的 Provider

2024-01-03

在flutter中学习bloc时出现错误

错误是 错误:无法在此 Practice4HomePage 小部件上方找到正确的提供程序

发生这种情况是因为您使用了BuildContext不包括提供者 你的选择。有以下几种常见场景:

  • 您在您的目录中添加了一个新的提供商main.dart并执行热重载。 要修复,请执行热重启。

  • 您尝试阅读的提供商处于不同的路线。

    提供者是“有范围的”。因此,如果您在路线中插入提供者,那么 其他路由将无法访问该提供商。

  • 你用了一个BuildContext这是您正在尝试阅读的提供者的祖先。

    确保 Practice4HomePage 位于您的 MultiProvider/Provider 下。 当您创建提供程序并尝试立即读取它时,通常会发生这种情况。

    例如,代替:

    Widget build(BuildContext context) {
      return Provider<Example>(
        create: (_) => Example(),
        // Will throw a ProviderNotFoundError, because `context` is associated
        // to the widget that is the parent of `Provider<Example>`
       child: Text(context.watch<Example>()),
      ),
    }
    

    考虑使用builder像这样:

    Widget build(BuildContext context) {
      return Provider<Example>(
        create: (_) => Example(),
        // we use `builder` to obtain a new `BuildContext` that has access to the provider
        builder: (context) {
          // No longer throws
          return Text(context.watch<Example>()),
        }
      ),
    }
    

您必须将该集团提供给您的Practice4HomePage班级。一种方法是将块提供给整个小部件树,即包装MaterialApp with BlocProvider or MultiBlocProvider。另一种方法是包裹BlocProvider你正在呼唤的Practice4HomePage。假设您从 ABC 页面导航到Practice4HomePage,你可以包裹BlocProvider在您的导航声明中。

Example:

Navigator.of(context).push(
  MaterialPageRoute<HomeForm>(
    builder: (context) => BlocProvider<TimerState>(
      create: (context) => TimerState(),
      child: Practice4HomePage(),
    ),
  ),
),
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误:在此 Practice4HomePage Widget Flutter(BLoc) 上方找不到正确的 Provider 的相关文章

随机推荐

  • HTML5 画布圆形文本

    如何使用画布创建圆形文本 圆形文本 字母现在应该正确定向 CanvasRenderingContext2D prototype fillTextCircle function text x y radius startRotation va
  • 使用正则表达式进行 Github 搜索

    有没有办法使用正则表达式在 github 存储库中搜索代码 目前 我克隆了存储库并进行搜索 但我想输入类似的内容 s foo gi 并查找代码中所有出现 foo 的地方 foo create foo extend fooBar barFoo
  • 从 SurfaceView 获取图像到 ImageView?

    我在从用作相机预览的 SurfaceView 获取图像 可绘制对象或位图时遇到了一些麻烦 final CameraSurfaceView cameraSurfaceView new CameraSurfaceView this Linear
  • 使用边框创建三角形

    我最近需要创建对话气泡 为了在对话气泡的末端创建小三角形尖端 我使用了CSS技术 http jsfiddle net 66jAA 5 其中元素被赋予0 width and 0 height并给定边界 使某些边框透明会产生对角线 这非常有效
  • 如何在 React 的子功能组件中触发一个动作?

    对于基本的表单 输入布局 很明显应该使用回调来处理从子组件到父组件的状态更改 由子组件发起 但是父组件如何要求子组件重新评估其状态并将其传达回父组件 这里的最终目标只是在提交表单按钮时触发子输入的验证 给定的 ts 代码如下所示 const
  • Go 声明中的“_,”(下划线逗号)是什么?

    我似乎无法理解这种变量声明 prs m example 究竟是什么 他们为什么声明这样的变量而不是 prs m example 我发现它是举例 地图 https gobyexample com maps 它避免了必须为返回值声明所有变量 它
  • 解释一下C++代码

    我可以获得有关以下代码解释的帮助吗 include
  • “复制本地”对于项目引用是否具有传递性?

    沃特 拟议的骗局 因为这里的问题表明了相反的情况链接问题 https stackoverflow com questions 12386523 visual studio not copying content files from ind
  • guice:命令行运行时注入/绑定

    我有以下问题 Inject MyClass Service service this service service public void doSomething service invokeSelf 我有一个模块 bind servic
  • 如何在没有 TCP/IP 堆栈的情况下用 Java 发送以太网帧

    我的 Java 应用程序应该控制直接连接到我的计算机 Ubuntu 和 Windows 网络接口的外部设备 EtherCAT 总线技术 没有连接其他网络设备 通信是在标准 IEEE 802 3 以太网帧上完成的 无需 IP 堆栈 发送数据示
  • 如何在 TensorFlow 中将张量转换为 ndarray?

    我的目标是将张量转换为 ndarray 而不需要 run 或 eval 我想执行与示例相同的操作 A tf constant 5 B tf constant A 1 0 0 但是 ndarray 可以位于 tf constant 内部 但张
  • 如何使用NuGetpackages.config文件?

    I see a 包配置解决方案中我的每个项目的文件 它包含有关各种程序集信息的信息 我希望 NuGet 能够自动扫描这些 packages config 并根据需要进行下载 但事实并非如此 我需要手动安装所有软件包吗 如果右键单击相关项目
  • python pip install 在 Windows 上不起作用

    我在 Windows 上安装了 python 2 7 10 我尝试使用以下命令在命令行上安装 Django C users user myproject gt python pip install django 这会显示以下错误 pytho
  • 更改 UITextView 中一个链接的属性

    我有一个UITextView具有多个 URL 我通过设置激活dataDetectorTypes财产给UIDataDetectorTypeLink 然后我使用linkTextAttributes属性来设置链接的颜色 现在 当用户点击其中一个链
  • 此编码器要求从 initWithCoder 返回替换的对象:

    我的应用程序在 iOS 11 2 上运行良好 但在 iOS 11 3 中会崩溃 我有例外 由于未捕获的异常 NSGenericException 而终止应用程序 原因 此编码器要求从 initWithCoder 返回替换的对象 我有一个带有
  • 通过 golang 中的多个 HTTP 处理程序包含上下文对象

    我刚刚读过这篇博文 http blog golang org error handling and go TOC 3 关于创建函数类型并实现 ServeHTTP 该函数上的方法能够处理错误 例如 type appError struct E
  • 在 SQL 中实现不相交集逼近(并集查找)

    使用 SQL 实现近似不相交集的最佳方法是什么 Details 我有一个边表 存储为两列表 vertex a vertex b 我需要一个不同集合的表 存储为 vertex set id 每个顶点一行 用不相交的 set id 标记每个顶点
  • 应用于行的几何平均值

    我有这个数据框作为例子 Col1 Col2 Col3 Col4 1 2 3 2 2 我想添加名为 Gmean 的第四列 用于计算每行前 3 列的几何平均值 怎样才能完成呢 Thanks 一种方法是Scipy s geometric mean
  • 是否可以将 Riak CS 与 Apache Flink 一起使用?

    我要配置filesystem状态后端和zookeeper恢复模式 state backend filesystem state backend fs checkpointdir recovery mode zookeeper recover
  • 错误:在此 Practice4HomePage Widget Flutter(BLoc) 上方找不到正确的 Provider

    在flutter中学习bloc时出现错误 错误是 错误 无法在此 Practice4HomePage 小部件上方找到正确的提供程序 发生这种情况是因为您使用了BuildContext不包括提供者 你的选择 有以下几种常见场景 您在您的目录中