【问题标题】:type 'List<String>' is not a subtype of type 'String''List<String>' 类型不是 'String' 类型的子类型
【发布时间】:2020-11-09 20:58:40
【问题描述】:

我正在尝试显示来自 firebase 的数据并收到此错误代码。

这里是:

              Text(
                ['Rating'].toString() ?? "empty"),
              Text(
                ['Name'] ?? "empty"),
              Text(
                ['Location'] ?? "empty)

...

 return ListView.builder(
            itemCount: snapshot.data.docs.length,
            itemBuilder: (BuildContext context, int index) =>
                buildContactCard(context, snapshot.data.docs[index]));

【问题讨论】:

  • 这个错误实际上已经足够描述了。 Text 小部件接受 String 作为其第一个位置参数,而您使用的是 ['Name'],即 List&lt;String&gt;。但是,整行 ['Name'] ?? "empty" 没有任何意义,因为 ?? 是返回右值的运算符,以防左值是 null,当您使用它时,它永远不会发生。或许您可以向我们解释一下您想通过['Name'] ?? "empty" 实现的目标,我们可以进一步为您提供帮助?
  • 嗨@nstosic,这就是我添加的原因?? “空”stackoverflow.com/questions/64343386/…。我正在尝试在 Card 小部件上显示 firebase 数据
  • 您可能打算使用someDataObject['Name'] 而不仅仅是['Name']
  • 你真的应该阅读dart language tour

标签: firebase flutter dart google-cloud-firestore


【解决方案1】:

好的,感谢@Nitrodon。对于此页面的下一位访问者来说,获得批准的答案会很好。 Text() 小部件需要一个字符串变量,而不是一个列表。假设您有一个联系人快照,它应该如下所示:

          Text(
            contact.data()['Rating'].toString() ?? "empty"),
          Text(
            contact.data()['Name'] ?? "empty"),
          Text(
            contact.data()['Location'] ?? "empty")

  

【讨论】:

    猜你喜欢
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2021-07-06
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多