我收到错误消息:在此设置小部件上方找不到正确的 Provider<User>(已修复)

Posted

技术标签:

【中文标题】我收到错误消息:在此设置小部件上方找不到正确的 Provider<User>(已修复)【英文标题】:I get the error: Could not find the correct Provider<User> above this settings widget (ALREADY FIXED) 【发布时间】:2020-06-18 05:22:45 【问题描述】:

固定: 在materialapp之前我没有设置streamprovider

我有这个:

 final user = Provider.of<User>(context);

return StreamBuilder<UserData>(
  stream: DatabaseService(uid: user.uid).userData,
  builder: (context, snapshot) 
    if(snapshot.hasData)

      UserData userData = snapshot.data;

我有一类用户:

class User 

final String uid;
final String email;
final String instagram;
String age;
String gender;
bool account;

User(this.email, this.age, this.gender, this.uid, this.instagram, this.account,);

我不知道是什么问题,我在其他地方用过它,它工作正常

这里是错误日志:

Error: Could not find the correct Provider<User> above this Settings Widget

要修复,请:

确保提供程序是此设置小部件的祖先 向 Provider 提供类型 向消费者提供类型 向 Provider.of() 提供类型 确保使用了正确的context

【问题讨论】:

您能否发送错误日志,这可能对您有所帮助。 我已经用错误日志更新了它 【参考方案1】:

确保在小部件树中的设置小部件上方有 Provider,为此,您可以通过使用 Provider() 包装整个材质应用程序来从提供者传递用户类,或者只需使用 Provider 包装设置小部件

Provider<User>(
create:(context)=>User(),
child:MaterialApp(
  //app
 ),
),

Provider<User>(
    create:(context)=>User(),
    child:SettingsWidget(
      //app
     ),
    ),

【讨论】:

他只是在加载而不是从中获取数据

以上是关于我收到错误消息:在此设置小部件上方找不到正确的 Provider<User>(已修复)的主要内容,如果未能解决你的问题,请参考以下文章

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

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

错误:在此小部件上方找不到正确的提供程序 <List<Auftrag>>

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

我无法修复:在此 ProductItem 小部件上方找不到正确的 Provider<AppUser>

在此 AddSupervisor 小部件上方找不到正确的 Provider<SupervisorProvider>