【问题标题】:Error: Could not find the correct Provider<List<Planner>> above this Planner Widget错误:在此 Planner 小部件上方找不到正确的 Provider<List<Planner>>
【发布时间】:2020-12-30 21:01:39
【问题描述】:

我希望有人可以在这里帮助我,我已经被这个问题困了几个小时了。

我正在尝试根据我自己的模型从 Firestore 快照构建 StreamProivder。不知何故,每次我声明 StreamProvider &lt;List&lt;Planner&gt;&gt; 的类型时,value: 行都会带有红色下划线。

这是流提供者

return StreamProvider<List<Planner>>.value(
  value: DatabaseService(uid: user.uid).planner,
  child: Scaffold(...

这是我的 DataService 类中的流:

  Stream<List<Planner>> get planner {
    return userCollection.document(uid).collection('Planner').snapshots().map(_plannerFromSnapshot);
  }

我在这里创建自己的数据列表:

  List<Planner> _plannerFromSnapshot(QuerySnapshot snapshot) {
    return snapshot.documents.map((doc) {
      return Planner(
        tag: doc.data['Datum'] ?? '',
        tageszeit: doc.data['Tageszeit'] ?? '',
        gericht: doc.data['Gericht'] ?? '',
        plannerID: doc.documentID ?? '',
      );
    }).toList();
  }
}

这是我自己的 Planner 模型类:

class Planner {

  final String tag;
  final String tageszeit;
  final String gericht;
  final String plannerID;

  Planner({this.tageszeit, this.gericht, this.tag, this.plannerID});

}

这是来自 AndroidStudio 的错误提示:

参数类型 'Stream(其中 Planner 在 ...\lib\models\plannermodel.dart) 不能分配给参数 类型 'Stream (其中 Planner 定义在 ...\lib\screens\planner.dart)。

我该如何解决这个问题?

提前谢谢你!

【问题讨论】:

    标签: firebase flutter dart


    【解决方案1】:

    来自错误信息:

    参数类型'Stream(其中Planner在...\lib\models\plannermodel.dart中定义)不能分配给参数类型'Stream(其中Planner在...\lib\screens中定义) \planner.dart)。

    我们可以看到Planner类有两个相互冲突的定义,一个在models\plannermodel.dart,一个在screens\planner.dart

    因此,我们可以将screens\planner.dart 中的Planner 类更改为PlannerScreen 来解决这个问题。

    【讨论】:

    • 乐于助人!请不要忘记选择正确的答案
    【解决方案2】:

    你需要在.map()之后的get planner中使用.toList()

    【讨论】:

    • 我的 _plannerFromSnapshot 函数末尾有一个 toList() 函数。在 getter 中使用 toList() 函数会带来更多错误
    猜你喜欢
    • 1970-01-01
    • 2021-02-04
    • 2021-01-31
    • 2020-08-21
    • 2021-07-23
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多