找不到正确的提供者<>

Posted

技术标签:

【中文标题】找不到正确的提供者<>【英文标题】:Could not find the correct Provider<> 【发布时间】:2019-12-05 18:11:57 【问题描述】:

我有一个类发出 HTTP 获取请求和两个屏幕第一个显示从 API 获取的标题第二个屏幕显示也从 API 获取的帖子并且所有使用提供程序我所做的是在主班级主页:

ChangeNotifierProvider<NewsRequest>(
 child:News(title: "Bitcoin News",),
 builder: (_) => NewsRequest() ),

在两个屏幕中,我做了最后一个

 newsResponse = Provider.of<NewsRequest>(context);

但是出现了这个错误

错误:在此描述上方找不到正确的提供程序 小部件颤动:颤动:要修复,请:颤动:颤动:*确保 提供者是这个描述小部件颤动的祖先:* 向 Provider Flutter 提供类型: * 为消费者颤振提供类型: * 向 Provider.of() 颤振提供类型: * 始终使用包导入。例如:进口 '包:my_app/my_code.dart';颤振:* 确保 正在使用正确的上下文`。

怎么解决????

【问题讨论】:

错误信息已经告诉你出了什么问题,你应该怎么做。你不明白什么? 这是我第一次使用提供者,所以我不知道错误消息是什么意思.. 我该怎么办? 【参考方案1】:

好的,我通过将 ChangeNotifierProvider 包装到一个材料小部件而不是主页来解决这个问题,这样整个应用程序就可以访问该提供程序

 return ChangeNotifierProvider<NewsRequest>(
      builder: (_) => NewsRequest(),
          child: MaterialApp(.....)

【讨论】:

以上是关于找不到正确的提供者<>的主要内容,如果未能解决你的问题,请参考以下文章

ProviderNotFoundException(错误:在此主页小部件上方找不到正确的 Provider<EntryProvider>

错误:在此 UpdateSupervisor 小部件上方找不到正确的 Provider<NewUser>

在此小部件上方找不到正确的提供程序

找不到正确的提供者

颤振:找不到正确的提供者

找不到正确的提供者不一致的行为