Flutter 我发现错误:找不到正确的提供程序<;用户>;此设置小部件上方(已修复)

Flutter 我发现错误:找不到正确的提供程序<;用户>;此设置小部件上方(已修复),flutter,dart,flutter-provider,Flutter,Dart,Flutter Provider,固定的: 在materialapp之前,我没有设置streamprovider 我有这个: final user = Provider.of<User>(context); return StreamBuilder<UserData>( stream: DatabaseService(uid: user.uid).userData, builder: (context, snapshot) { if(snapshot.hasData){

固定的: 在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;
}

我不知道问题出在哪里,我曾在其他地方使用过,而且效果很好

下面是错误日志:

Error: Could not find the correct Provider<User> above this Settings Widget
错误:在此设置小部件上方找不到正确的提供程序
若要修复,请执行以下操作:

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

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

Provider<User>(
create:(context)=>User(),
child:MaterialApp(
  //app
 ),
),
提供程序(
创建:(上下文)=>User(),
孩子:MaterialApp(
//应用程序
),
),

提供程序(
创建:(上下文)=>User(),
孩子:设置swidget(
//应用程序
),
),

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

Provider<User>(
create:(context)=>User(),
child:MaterialApp(
  //app
 ),
),
提供程序(
创建:(上下文)=>User(),
孩子:MaterialApp(
//应用程序
),
),

提供程序(
创建:(上下文)=>User(),
孩子:设置swidget(
//应用程序
),
),

你能发送错误日志吗?这可能是帮助你的有用信息。我用错误日志更新了它。你能发送错误日志吗?这可能是帮助你的有用信息。我用错误日志更新了它。他只是在加载,没有从中获取数据。他只是在加载,没有从中获取数据
Provider<User>(
    create:(context)=>User(),
    child:SettingsWidget(
      //app
     ),
    ),