【问题标题】:Migrating from Provider to Riverpod从 Provider 迁移到 Riverpod
【发布时间】:2021-08-05 19:47:26
【问题描述】:

我在使用 Provider 时遇到了困难,遇到了 Riverpod,它只是 Provider 的下一代。我正在尝试使用 Riverpod 创建 StreamProvider,但出现错误。

这里是创建 StreamProvider 的代码:

final trxnStreamProvider = StreamProvider.autoDispose<List<Trxns>>((ref) {
  final stream = firestoreService.getAgencyTrxns();
  return stream.map((snapshot) => snapshot.docs.map((doc) => Trxns.fromFirestore(doc.data)).toList());
});

我得到的错误标记代码“doc.data”。这是错误文本:

The argument type 'Object? Function()' can't be assigned to the parameter type 'Map<String, dynamic>'.

这里是“Trxns.fromFirestore(doc.data)”的代码:

Trxns.fromFirestore(Map<String, dynamic> firestore)
      : clientFName = firestore['clientFName'],
        clientLName = firestore['clientLName'];

我还是新手,很难理解错误消息。是不是说“doc.data”不是正确的类型?如果是这样,我该如何解决这个问题?如果没有,是什么问题以及如何解决?

【问题讨论】:

    标签: flutter provider riverpod


    【解决方案1】:
    Map<String, dynamic> data() => dartify(jsObject.data());
    

    data 是一个方法,所以你需要调用它:

    doc.data()
    

    doc.data 表示你要传递一个函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 2021-02-07
      • 2023-02-07
      • 2021-05-06
      • 2021-01-25
      相关资源
      最近更新 更多